软件压缩包目录/data/Software
站点目录/var/www
一、下载composer
1、下载安装composer
wget -P /data/Software https://getcomposer.org/download/1.8.5/composer.phar
mv /data/Software/composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer
二、下载安装laravel
1、下载laravel
wget -c https://github.com/laravel/laravel/archive/v5.8.17.zip -O /data/Software/laravel-5.8.17.zip
2、解压
cd /data/Software
unzip laravel-5.8.17
3、放进站点
mv /data/Software/laravel-5.8.17 /var/www/laravel
4、如nginx没有配置ssl模块,到软件解压目录,重新安装ssl模块
cd /data/Software/nginx-1.16.0
sudo ./configure --with-http_ssl_module
//只编译不安装注意!
sudo make
//备份nginx启动程序
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
//替换nginx启动程序
cp /data/Software/nginx-1.16.0objs/nginx /usr/local/nginx/sbin/nginx
systemctl restart nginx
5、检查环境
显然我的php中不仅ssl拓展没安装,其他的也没装
6、安装php拓展
//虽然相对路径也可以,但还是在php.ini中更改成绝对路径吧,你的文件名和我应该不同
extension_dir = "/etc/php7.2/lib/php/extensions/no-debug-non-zts-20170718/"
cd /data/Software/php-7.2.4/ext
ls
压缩包中自带有很多主流拓展包
安装laravel需要用到bcmath、ctype、json、mbstring、openssl、pdo、tokenizer、xml
find / -name phpsize
//phpsize位置
/etc/php7.2/bin/phpsize
(1)bcmatch
cd /data/Software/php-7.2.4/ext/bcmath
/etc/php7.2/bin/phpize
./configure --prefix=/usr/local/
make && make install
make clean
后面的操作全部一样
(2)ctype
cd /data/Software/php-7.2.4/ext/ctype
/etc/php7.2/bin/phpize
./configure --prefix=/usr/local/
make && make install
make clean
(3)json
cd /data/Software/php-7.2.4/ext/json
/etc/php7.2/bin/phpize
./configure --prefix=/usr/local/
make && make install
make clean
(4)mbstring
cd /data/Software/php-7.2.4/ext/mbstring
/etc/php7.2/bin/phpize
./configure --prefix=/usr/local/
make && make install
make clean
(5)openssl
cd /data/Software/php-7.2.4/ext/openssl
/etc/php7.2/bin/phpize
出现问题:找不到config.m4,但其实是有的,把config0.m4改个名字
mv config0.m4 config.m4
/etc/php7.2/bin/phpize
./configure --prefix=/usr/local/
make && make install
make clean
(6)pdo
cd /data/Software/php-7.2.4/ext/pdo
/etc/php7.2/bin/phpize
./configure --prefix=/usr/local/
make && make install
make clean
(7)tokenizer
cd /data/Software/php-7.2.4/ext/tokenizer
/etc/php7.2/bin/phpize
./configure --prefix=/usr/local/
make && make install
make clean
(8)xml
cd /data/Software/php-7.2.4/ext/xml
/etc/php7.2/bin/phpize
./configure --prefix=/usr/local/
make && make install
make clean
检查下文件
7、关于开启php拓展,使用phpsize安装拓展都是内置php的,不需要手动引用“extension=xml.so“,所以直接重启服务即可
//重启下服务器
systemctl restart nginx
8、权限
//在www-data组中添加你的用户
sudo usermod -a -G www-data '用户名'
//更改www文件所属用户组和用户名为root组root用户
sudo chown root:root /var/www
//更改www文件权限:文件所有者(root)可写可读可执行、同组不同用户可读可写可执行('root组下')、其他组和用户不可写可读可执行
sudo chmod 755 /var/www/
//更改项目及其下所有文件所属用户组和用户名为www-data
sudo chown -R www-data:www-data /var/www/‘项目名’
sudo chmod -R 775 /var/www/'项目名'
//重登用户
su - '用户名'
9、安装laravel
//注意安装智能在普通用户下
cd /var/www/laravel
composer config -g repo.packagist composer https://packagist.phpcomposer.com
composer install
虽然是国内镜像但下载速度也比较慢。。
安装完成
三、测试
问题:显示500错误
官网显示nginx.conf需要改或加一句,意思是不管地址访问哪里都会跳转到public下的index
location / {
try_files $uri $uri/ /index.php?$query_string;
}
应该还有权限问题
//更改项目及其下所有文件所属用户组和用户名为www-data
sudo chown -R www-data:www-data /var/www/‘项目名’
sudo chmod -R 775 /var/www/'项目名'
//打开laravel的debug模式
vi /var/www/laravel/config/app.php
'debug' => env('APP_DEBUG', true),
打开debug后显示logs日志文件没有写入权限。。
但实际www-data用户是所有操作权限都有的。。
防止类似写权限,直接给storage追加所有人写权限吧
cd /var/www/laravel
//给全部用户追加写权限
chmod -R a+w storage
//复制环境变量配置文件,因为是用composer安装
cp -a .env.example .env
//生成一个随机的 key,并自动更新到 ./laravel/.env的 APP_KEY
php artisan key:generate
//PHP 内置的开发服务器启动应用
php artisan serve