安裝php
首先得安裝第三方軟件庫
yum install epel-release
安裝依賴包
yum install gcc gcc-c++ glibc libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel
下載php源碼
編譯&安裝
./configure --prefix=/usr/local/php --enable-fpm --with-mcrypt --enable-mbstring --enable-pdo --with-curl --disable-debug --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli --with-gd --with-jpeg-dir --with-freetype-dir --enable-calendar
make
make install
為php提供配置文件
cp php.ini-production /usr/local/php/lib/php.ini
為php-fpm提供配置文件
cd /usr/local/php
cp etc/php-fpm.conf.default etc/php-fpm.conf
vim etc/php-fpm.conf
修改以下內(nèi)容
pm.max_children = 150
pm.start_servers = 8
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pid = /usr/local/php/var/run/php-fpm.pid
啟動php-fpm
執(zhí)行以下命令:
/usr/local/php/sbin/php-fpm
使用如下命令來驗證(如果此命令輸出有中幾個php-fpm進程就說明啟動成功了):
ps aux | grep php-fpm
安裝nginx
安裝依賴包
yum install gcc automake autoconf libtool make gcc-c++ readline readline-devel pcre pcre-devel opemssl openssl-devel zlib zlib-devel
下載源碼
為利于后期開發(fā),nginx采用openresty
編譯&安裝
./configure --prefix=/usr/local/openresty/nginx --sbin-path=/usr/local/openresty/nginx/sbin/nginx --conf-path=/usr/local/openresty/nginx/nginx.conf --pid-path=/usr/local/openresty/nginx/nginx.pid --with-http_ssl_module --with-http_flv_module --with-http_mp4_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi
make
make install
nginx和php-fpm整合
編輯文件/usr/local/openresty/nginx/nginx.conf
,以下內(nèi)容的“#”號去掉,結(jié)果如下:
log_format main '$remote_addr - $remote_user [$time_local] "$request"'
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
location / {
root html;
index index.html index.htm;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
#include fastcgi_params;
include fastcgi.conf;
}
重新載入nginx的配置文件
/usr/local/openresty/nginx/sbin/nginx -s reload
測試php文件
在/usr/local/openresty/nginx/html
下創(chuàng)建index.php文件缅帘,輸入如下內(nèi)容
<?php
phpinfo();
?>
瀏覽器訪問http://你的服務(wù)器ip/index.php
汽畴,即可以見到php信息了翩剪。
非本機訪問需要開啟防火墻策略
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效腕柜,沒有此參數(shù)重啟后失效)
firewall-cmd --reload
mysql安裝
下載安裝包
下載mysql-5.7.16-linux-glibc2.5-x86_64.tar
檢查庫文件是否存在膀篮,如有刪除毯焕。
rpm -qa | grep mysql
mysql-libs-5.1.52-1.el6_0.1.x86_64
rpm -e mysql-libs-5.1.52.x86_64 --nodeps
檢查mysql組和用戶是否存在衍腥,如無創(chuàng)建。
cat /etc/group | grep mysql
mysql:x:490:
cat /etc/passwd | grep mysql
mysql:x:496:490::/home/mysql:/bin/bash
以上為默認存在的情況纳猫,如無婆咸,執(zhí)行添加命令:
groupadd mysql
useradd -r -g mysql mysql //useradd -r參數(shù)表示mysql用戶是系統(tǒng)用戶,不可用于登錄系統(tǒng)芜辕。
解壓TAR包尚骄,更改所屬的組和用戶
cd /usr/local/
tar xvf mysql-5.7.12-linux-glibc2.5-x86_64.tar
ls -l
tar xvfz mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.7.12-linux-glibc2.5-x86_64 mysql
chown -R mysql mysql/
chgrp -R mysql mysql/
cd mysql/
安裝數(shù)據(jù)庫
bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
如果改變默認安裝路徑,則需要
1侵续、/etc/my.cnf倔丈、/etc/init.d/mysqld中修改
basedir='/apps/mysql'
datadir='/apps/mysql/data'
2、創(chuàng)建ln
mkdir -p /usr/local/mysql/bin
ln -s /apps/mysql/bin/mysqld /usr/local/mysql/bin/mysqld`
初始化數(shù)據(jù)庫
cp -a ./support-files/my-default.cnf /etc/my.cnf
cp -a ./support-files/mysql.server /etc/init.d/mysqld
cd bin/
./mysqld_safe --user=mysql &
/etc/init.d/mysqld restart
設(shè)置開機啟動
chkconfig --level 35 mysqld on
初始化密碼
mysql5.7會生成一個初始化密碼状蜗,而在之前的版本首次登陸不需要登錄需五。
cat /root/.mysql_secret
./mysql -uroot -p
Enter password:
mysql> SET PASSWORD = PASSWORD('********');
mysql> flush privileges;
//重啟生效
/etc/init.d/mysqld restart
添加PDO擴展
一些漏洞環(huán)境(dvwa)數(shù)據(jù)庫連接改用pdo,如未安裝轧坎,可在此進行安裝宏邮。
在PHP源碼包中進入ext/pdo_mysql,按以下步驟執(zhí)行缸血。
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
make
make install
注: 我的PHP安裝在:/usr/local/php/蜜氨,mysql安裝在:/usr/local/mysql,編譯的時候注意你自己的安裝目錄在哪里
修改配置文件php.ini
打開并添加
extension=pdo_mysql.so
extension=pdo.so
重啟php-fpm