怎么在Ubuntu 14.04中部署一個(gè)PHP開發(fā)環(huán)境?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)鎮(zhèn)坪,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792軟件及版本選擇
Ubuntu 14.04
Ubuntu 是目前用戶數(shù)量數(shù)一數(shù)二的發(fā)行版,背后有大土豪維護(hù),可以說是輕量級(jí)用戶的很好選擇。而 14.04 是目前新的 LTS 版本,目前已經(jīng)發(fā)布了半年了,基本是目前支持好的版本。
Nginx
Nginx 是一個(gè)輕量級(jí)的,配置靈活,擅長(zhǎng)并發(fā)的 Web 服務(wù)器。
PHP-FPM
PHP-FPM 是目前官方推薦的很好的運(yùn)行模式。
MariaDB
MySQL 的替代品,畢竟目前 MySQL 的創(chuàng)始人已經(jīng)不建議我們使用 MySQL 了。
基本配置
通常當(dāng)你創(chuàng)建了一臺(tái) VPS, 你會(huì)得到一個(gè) IP 和一個(gè) root 密碼,所以,先用 ssh 登上你的服務(wù)器:
ssh root@106.186.21.33
# 如果有警告輸入 yes 來確認(rèn),然后輸入你的 root 密碼
配置一下公鑰登錄,省著每次登錄都要輸入密碼,非常建議像我一樣把公鑰上傳到一個(gè)公開的地址,這樣只要一條命令就可以設(shè)置好:
mkdir ~/.ssh; curl 'https://raw.githubusercontent.com/jysperm/meta/master/Key/JyAir.pub' >> ~/.ssh/authorized_keys; chmod -R 700 ~/.ssh;
然后更新一下軟件包列表,升級(jí)現(xiàn)有軟件包:
apt-get update apt-get upgrade
修改一下主機(jī)名,好改成一個(gè)確實(shí)可以訪問到這臺(tái)服務(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ù)庫(kù) memcached: 基于內(nèi)存的緩存,很多程序會(huì)用到 php-pear: PHP 的包管理器 php5-mysql: PHP MySQL 數(shù)據(jù)庫(kù)驅(qū)動(dòng) php5-curl: 一個(gè) HTTP 協(xié)議庫(kù) php5-gd: 一個(gè)圖像處理庫(kù) php5-mcrypt: 一個(gè)加密算法庫(kù) php5-memcache: Memcached 驅(qū)動(dòng) python: 一個(gè)常用的腳本語言解釋器 make: 一個(gè)常用的構(gòu)建工具 screen: 一個(gè)常用的 Shell 會(huì)話管理工具 git: 一個(gè)常用的版本控制工具 wget, curl: 常用的文件下載工具 zip, unzip: ZIP 壓縮和解壓工具 iftop, iptraf, nethogs: 常用的流量監(jiān)控工具 vim: 一個(gè)常用的編輯器 htop: 一個(gè)常用的進(jìn)程監(jiān)控工具
安裝 WordPress
新建一個(gè)普通用戶,并切換到該用戶
adduser wordpress su wordpress cd ~
下載 WordPress, 請(qǐng)自行到官網(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)建一個(gè)進(jìn)程池:
vi /etc/php5/fpm/pool.d/wordpress.conf
這是一份很典型的配置文件,通過監(jiān)聽 Unix Socket 來提供服務(wù),動(dòng)態(tài)調(diào)節(jié)進(jìn)程數(shù),高 10 個(gè)進(jìn)程,最低 3 個(gè)進(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
新建一個(gè)站點(diǎn):
vi /etc/nginx/sites-enabled/wordpress
這份配置文件已將請(qǐng)求重寫到 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 配合的一個(gè) 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 控制臺(tái):
mysql -p
# 需要輸入你的 MySQL root 密碼
# 創(chuàng)建數(shù)據(jù)庫(kù)
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ù)都會(huì)重啟并使用新的配置:
reboot
看完上述內(nèi)容,你們掌握怎么在Ubuntu 14.04中部署一個(gè)PHP開發(fā)環(huán)境的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!