軟件壓縮包目錄/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