天天看點

linux下php開發環境搭建(nginx+php+mysql)

安裝前準備工作

先安裝一些必要的類庫

yum install -y wget  zlib-devel bzip2-devel  curl-devel openssl openssl-devel vim subversion pcre-devel

php需要的一些類庫

yum install -y libxml2 libxml2-devel freetype-devel libjpeg-devel libpng-devel libtiff-devel libxslt-devel

//mcrypt擴充

yum  install  -y  libmcrypt  libmcrypt-devel php-mcrypt

mysql相關類庫

yum install -y cmake gcc gcc-c++ perl-Data-Dumper libaio git perl bison ncurses-devel

一、安裝nginx

1、下載下傳nginx安裝包

 wget -c http://nginx.org/download/nginx-1.7.4.tar.gz 

2、進入目錄,解壓

tar -zxvf nginx-1.7.4.tar.gz 

3、編譯

./configure   --prefix=/usr/local/nginx --with-pcre --with-file-aio --with-http_gzip_static_module --with-http_ssl_module --with-http_stub_status_module

4、安裝

make && make install

5、檢查是否安裝成功

/usr/local/nginx/sbin/nginx -t檢測是否成功

/usr/local/nginx/sbin/nginx 啟動nginx

/usr/local/nginx/sbin/nginx -s  reload 重新開機

6、開放端口

vi /etc/sysconfig/iptables #編輯防火牆配置檔案

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 3360 -j ACCEPT

儲存退出

 service iptables restart 重新開機防火牆

7、關閉SELINUX

vi /etc/selinux/config

#SELINUX=enforcing #注釋掉

SELINUX=disabled #增加

儲存退出

setenforce 0 #使配置立即生效

二、PHP編譯安裝

1、下載下傳php壓縮包

http://php.net/get/php-5.4.41.tar.gz/from/a/mirror

2、解壓

tar xzvf php-5.4.41.tar.gz

3、編譯安裝

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-openssl --with-pear=/usr/share/php --enable-ftp --enable-zip --with-bz2 --with-zlib --with-libxml-dir=/usr --with-gd --enable-gd-native-ttf --with-jpeg-dir --with-png-dir --with-freetype-dir --with-gettext --with-iconv --enable-mbstring --disable-ipv6 --enable-inline-optimization  --enable-static --enable-sockets --enable-soap --with-mhash --with-pcre-regex --with-mcrypt --with-curl --with-mysql --with-mysqli --with-pdo_mysql

make && make install

4、配置

進入php配置目錄

cd  /usr/local/php/etc

cp php.ini-development php.ini

cp php-fpm.conf.default php-fpm.conf

#編輯php-fpm配置檔案(簡單配置一下)

vi /usr/local/php/etc/php-fpm.conf

user = nobody #設定php-fpm運作賬号為nobody

group = nobody #設定php-fpm運作組為nobody

pid = run/php-fpm.pid #取消前面的分号

:wq! #儲存退出

#編輯php.ini配置檔案(簡單配置一下,更多配置請參考官方說明)

vi /usr/local/php/etc/php.ini

找到:;date.timezone =

修改為:date.timezone = PRC #設定時區

找到:expose_php = On

修改為:expose_php = Off #禁止顯示php版本的資訊

找到:short_open_tag = Off

修改為:short_open_tag = ON #支援php短标簽

找到opcache.enable=0

修改為opcache.enable=1 #php支援opcode緩存

找到:opcache.enable_cli=1 #php支援opcode緩存

修改為:opcache.enable_cli=0

在最後一行添加:zend_extension=opcache.so #開啟opcode緩存功能

:wq! #儲存退出

5、啟動php-fpm

執行 /usr/local/php/sbin/php-fpm

6、設定php-fpm開機啟動

cp  phpsrc/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm #拷貝php-fpm到啟動目錄

chmod +x /etc/rc.d/init.d/php-fpm #添加執行權限

chkconfig php-fpm on #設定開機啟動

7、php-fpm程序管理

/usr/local/php/sbin/php-fpm  #啟動php-fpm

INT, TERM 立刻終止

QUIT 平滑終止

USR1 重新打開日志檔案

USR2 平滑重載所有worker程序并重新載入配置和二進制子產品

kill -INT `cat /usr/local/php/var/run/php-fpm.pid`(程序号)

kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

php.ini-development

8、配置nginx支援php

vi /usr/local/nginx/conf/nginx.conf

修改/usr/local/nginx/conf/nginx.conf 配置檔案,需做如下修改

user nobody nobody; #首行user去掉注釋,修改Nginx運作組為nobody nobody;必須與/usr/local/php/etc/php-fpm.conf中的user,group配置相同,否則php運作出錯

index index.html index.htm index.php; #添加index.php

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

#

location ~ \.php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

#取消FastCGI server部分location的注釋,注意fastcgi_param行的參數,改為$document_root$fastcgi_script_name,或者使用絕對路徑

重新開機nginx

/usr/local/nginx/bin/nginx -s reload

三、Mysql安裝

mysql的安裝方式有2種,一種是編譯安裝,一種是直接下載下傳編譯好的壓縮包進行安裝

這裡采用官方編譯好的方式進行安裝

1、下載下傳mysql

wget -c http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz

2、解壓,将其解壓在/usr/local/mysql目錄下

tar xzvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz

3、建立mysql使用者組

shell> groupadd mysql

shell> useradd -g mysql -s /bin/false mysql

4、進入mysql解壓後的目錄,安裝mysql

cd /usr/local/mysql

進入安裝路徑,執行初始化配置腳本,建立系統自帶的資料庫和表

scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

mysql5.7.6以上版本請用如下指令安裝

shell> bin/mysql_install_db --user=mysql    # Before MySQL 5.7.6

shell> bin/mysqld --initialize --user=mysql # MySQL 5.7.6 and up

shell> bin/mysql_ssl_rsa_setup              # MySQL 5.7.6 and up

記住安裝後的指令行提示的mysql密碼

--複制my.cnf配置檔案

cp support-files/my-medium.cnf /usr/local/mysql/my.cnf

注:在啟動MySQL服務時,會按照一定次序搜尋my.cnf,先在/etc目錄下找,找不到則會搜尋"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,這是新版MySQL的配置檔案的預設位置!注意:在CentOS 6.4版作業系統的最小安裝完成後,在/etc目錄下會存在一個my.cnf,需要将此檔案更名為其他的名字,如:/etc/my.cnf.bak,否則,該檔案會幹擾源碼安裝的MySQL的正确配置,造成無法啟動。

修改/usr/local/mysql權限

chown -R mysql:mysql /usr/local/mysql

5、啟動MySQL

 添加服務,拷貝服務腳本到init.d目錄,并設定開機啟動

cp support-files/mysql.server /etc/init.d/mysql

chmod +x mysql

chkconfig mysql on

service mysql start  --啟動MySQL

6、修改mysql密碼

./mysqladmin -p舊密碼 password 新密碼;

7、修改遠端通路權限(這裡以root為例)

grant all privileges on *.* to \'root\'@\'%\' identified by \'123456\';

flush privileges;