在Ubuntu 14.04上部署 PHP 環(huán)境及 WordPress
軟件及版本選擇
Ubuntu 14.04
Ubuntu 是目前用戶數(shù)量數(shù)一數(shù)二的發(fā)行版,背后有大土豪維護(hù),可以說是輕量級用戶的最佳選擇。而 14.04 是目前最新的 LTS 版本,目前已經(jīng)發(fā)布了半年了,基本是目前支持最好的版本。
Nginx
Nginx 是一個輕量級的,配置靈活,擅長并發(fā)的 Web 服務(wù)器。
PHP-FPM
PHP-FPM 是目前官方推薦的最佳的運(yùn)行模式。
MariaDB
MySQL 的替代品,畢竟目前 MySQL 的創(chuàng)始人已經(jīng)不建議我們使用 MySQL 了。
基本配置
通常當(dāng)你創(chuàng)建了一臺 VPS, 你會得到一個 IP 和一個 root 密碼,所以,先用 ssh 登上你的服務(wù)器:
ssh root@106.186.21.33
# 如果有警告輸入 yes 來確認(rèn),然后輸入你的 root 密碼
配置一下公鑰登錄,省著每次登錄都要輸入密碼,非常建議像我一樣把公鑰上傳到一個公開的地址,這樣只要一條命令就可以設(shè)置好:
mkdir ~/.ssh; curl 'https://raw.githubusercontent.com/jysperm/meta/master/Key/JyAir.pub' >> ~/.ssh/authorized_keys; chmod -R 700 ~/.ssh;
然后更新一下軟件包列表,升級現(xiàn)有軟件包:
apt-get update apt-get upgrade
修改一下主機(jī)名,最好改成一個確實可以訪問到這臺服務(wù)器的域名:
vi /etc/hostname vi /etc/hosts
安裝軟件包
apt-get install nginx postfix php5-fpm mariadb-server memcached apt-get install php-pear php5-mysql php5-curl php5-gd php5-mcrypt php5-memcache apt-get install python make screen git wget zip unzip iftop vim curl htop iptraf nethogs nginx: Web 服務(wù)器 postfix: SMTP 服務(wù)器,用來支持從本地發(fā)送郵件 php5-fpm: PHP 進(jìn)程管理器,及 PHP 解釋器 mariadb-server: 類 MySQL 數(shù)據(jù)庫 memcached: 基于內(nèi)存的緩存,很多程序會用到 php-pear: PHP 的包管理器 php5-mysql: PHP MySQL 數(shù)據(jù)庫驅(qū)動 php5-curl: 一個 HTTP 協(xié)議庫 php5-gd: 一個圖像處理庫 php5-mcrypt: 一個加密算法庫 php5-memcache: Memcached 驅(qū)動 python: 一個常用的腳本語言解釋器 make: 一個常用的構(gòu)建工具 screen: 一個常用的 Shell 會話管理工具 git: 一個常用的版本控制工具 wget, curl: 常用的文件下載工具 zip, unzip: ZIP 壓縮和解壓工具 iftop, iptraf, nethogs: 常用的流量監(jiān)控工具 vim: 一個常用的編輯器 htop: 一個常用的進(jìn)程監(jiān)控工具
安裝 WordPress
新建一個普通用戶,并切換到該用戶
adduser wordpress su wordpress cd ~
下載 WordPress, 請自行到官網(wǎng)查看最新版本的下載地址:
wget http://cn.wordpress.org/wordpress-3.9-zh_CN.zip
解壓文件:
unzip wordpress-*.zip
設(shè)置文件權(quán)限:
chmod -R 750 wordpress
刪除安裝包:
rm wordpress-*.zip
回到 root:
exit
配置 PHP-FPM
為 WordPress 創(chuàng)建一個進(jìn)程池:
vi /etc/php5/fpm/pool.d/wordpress.conf
這是一份很典型的配置文件,通過監(jiān)聽 Unix Socket 來提供服務(wù),動態(tài)調(diào)節(jié)進(jìn)程數(shù),最高 10 個進(jìn)程,最低 3 個進(jìn)程:
[wordpress] user = wordpress group = wordpress listen = /home/wordpress/phpfpm.sock listen.owner = wordpress listen.group = wordpress listen.mode = 0660 pm = dynamic pm.max_children = 10 pm.min_spare_servers = 3 pm.max_spare_servers = 5 slowlog = /home/wordpress/phpfpm.slowlog request_slowlog_timeout = 5s request_terminate_timeout = 15s php_admin_value[error_log] = /home/wordpress/phpfpm_error.log php_admin_flag[log_errors] = On
配置 Nginx
刪掉 Nginx 的默認(rèn)站點(diǎn):
rm /etc/nginx/sites-enabled/default
新建一個站點(diǎn):
vi /etc/nginx/sites-enabled/wordpress
這份配置文件已將請求重寫到 index.php, 可以直接在 WordPress 中使用「固定鏈接」功能:
server { listen 80; server_name jysperm.me; root /home/wordpress/wordpress; index index.html index.php; autoindex off; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { fastcgi_pass unix:///home/wordpress/phpfpm.sock; include fastcgi_params; fastcgi_index index.php; } }
如果你希望把其他所有域名都跳轉(zhuǎn)到你的站點(diǎn),可以添加這么一段:
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; rewrite ^/(.*)$ http://jysperm.me permanent; }
然后我們需要修正 Nginx 和 PHP-FPM 配合的一個 Bug:
vi /etc/nginx/fastcgi_params
將 fastcgi_param SCRIPT_FILENAME 開頭的行改為:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
為 Nginx 添加讀取 WordPress 文件的權(quán)限:
usermod -G wordpress -a www-data
配置 MySQL
進(jìn)入 MySQL 控制臺:
mysql -p
# 需要輸入你的 MySQL root 密碼
# 創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE `wordpress`;
# 為 WordPress 新建用戶
CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'password';
# 授予權(quán)限
GRANT ALL PRIVILEGES ON `wordpress` . * TO 'wordpress'@'localhost';
# 退出
QUIT
重啟
好了,已經(jīng)配置完成了,我們直接重啟服務(wù)器即可,這樣所有服務(wù)都會重啟并使用新的配置:
reboot
相關(guān)文章
購物車實現(xiàn)的幾種方式優(yōu)缺點(diǎn)對比
本文給大家分享的是實現(xiàn)購物車的幾種方式,以及這幾種方式的優(yōu)缺點(diǎn)對比的情況,非常的詳細(xì),有需要的小伙伴可以參考下2018-05-05php設(shè)計模式之正面模式實例分析【星際爭霸游戲案例】
這篇文章主要介紹了php設(shè)計模式之正面模式,結(jié)合星際爭霸游戲案例形式分析了php正面模式相關(guān)原理、使用技巧與操作注意事項,需要的朋友可以參考下2020-03-03PHP設(shè)計模式之裝飾器(裝飾者)模式(Decorator)入門與應(yīng)用詳解
這篇文章主要介紹了PHP設(shè)計模式之裝飾器(裝飾者)模式(Decorator),結(jié)合實例形式詳細(xì)分析了PHP裝飾者模式的概念、原理、用法及相關(guān)操作注意事項,需要的朋友可以參考下2019-12-12ThinkPHP3.1新特性之動態(tài)設(shè)置自動完成及自動驗證示例代碼
這篇文章主要介紹了ThinkPHP3.1的動態(tài)設(shè)置自動完成及自動驗證功能,需要的朋友可以參考下2014-06-06Laravel框架基于中間件實現(xiàn)禁止未登錄用戶訪問頁面功能示例
這篇文章主要介紹了Laravel框架基于中間件實現(xiàn)禁止未登錄用戶訪問頁面功能,結(jié)合實例形式分析了Laravel框架中間件生成、注冊及使用相關(guān)操作技巧,需要的朋友可以參考下2019-01-01openai createChatCompletion函數(shù)使用實例
這篇文章主要為大家介紹了openai createChatCompletion函數(shù)使用實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05laravel 根據(jù)不同組織加載不同視圖的實現(xiàn)
今天小編就為大家分享一篇laravel 根據(jù)不同組織加載不同視圖的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10