1、簡介php
LNMP表明的就是:Linux系統下Nginx+MySQL+PHP這種網站服務器架構。html
——Linux是一類Unix計算機操做系統的統稱,是目前最流行的免費操做系統。表明版本有:debian、mysql
centos、ubuntu、fedora、gentoo等。nginx
——Nginx是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP代理服務器。sql
——Mysql是一個小型關係型數據庫管理系統。數據庫
——PHP是一種在服務器端執行的嵌入HTML文檔的腳本語言。ubuntu
這四種軟件均爲免費開源軟件,組合到一塊兒,成爲一個免費、高效、擴展性強的網站服務系統。vim
2、項目環境centos
Linux 6.5api
Nginx-1.8.1.tar.gz
Mysql-5.6.16.tar.gz
php-5.6.20.tar.gz
nginx源碼包下載地址http://nginx.org/en/download.html
3、項目架構
4、安裝過程
一、nginx服務器安裝配置
(1)首先安裝開發環境,及所需依賴
[root@nginx ~]# yum -y groupinstall "Development libraries" "Development tools" "X Software Development"
[root@nginx ~]# yum -y install gcc pcre pcre-devel
(2)添加nginx使用用戶
[root@nginx ~]#useradd -r www
(3)編譯安裝nginx
[root@nginx ~]# tar -zxvf nginx-1.8.1.tar.gz
[root@nginx ~]# cd nginx-1.8.1
[root@nginx nginx-1.8.1]# ./configure --prefix=/usr/local/nginx \
> --user=www --group=www \
> --with-http_ssl_module \ ## 啓用ngx_http_ssl_module支持(需已安裝openssl)
> --with-http_stub_status_module \ ##啓用nginx的NginxStatus功能
> --with-http_gzip_static_module \ ##啓用ngx_http_gzip_static_module支持
> --with-pcre
[root@nginx nginx-1.8.1]# make && make install
(4)編輯nginx.conf,在server段中如下內容去掉註釋
location ~ \.php$ {
fastcgi_pass 192.168.32.130:9000; ##PHP服務器,及監聽端口
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
include fastcgi_params;
}
(5)啓動nginx
[root@nginx ~]# /usr/local/nginx/sbin/nginx
(6)測試訪問,訪問成功以下圖:
二、PHP服務器的安裝
(1)PHP所需依賴,及添加用戶
[root@php ~]# yum -y install gcc openssl-devel pcre pcre-devel zlib-devel libxml2-devel curl-devel libjpeg-devel libpng-devel freetype-devel bzip2-devel
[root@php ~]# useradd -r www
(2)安裝PHP擴展
[root@php ~ ]# tar -zxvf mhash-0.9.9.9.tar.gz
[root@php mhash-0.9.9.9]# cd mhash-0.9.9.9
[root@php mhash-0.9.9.9]# ./configure
[root@php mhash-0.9.9.9]# make && make install
[root@php ~ ]# tar -zxvf libiconv-1.13.tar.gz
[root@php libiconv-1.13]# cd libiconv-1.13
[root@php libiconv-1.13]# ./configure
[root@php libiconv-1.13]# make && make install
[root@php libmcrypt-2.5.8]# tar -zxvf libmcrypt-2.5.8.tar.gz
[root@php libmcrypt-2.5.8]# cd libmcrypt-2.5.8
[root@php libmcrypt-2.5.8]# ./configure
[root@php libmcrypt-2.5.8]# make && make install
[root@php libmcrypt-2.5.8]# ldconfig -v
[root@php libmcrypt-2.5.8]# cd libltdl
[root@php libltdl ]# ./configure --with-gmetad --enable-gexec --enable-ltdl-install
[root@php libltdl ]# make && make install
[root@php ~ ]# ln -sv /usr/local/lib/libmcrypt* /usr/lib/
[root@php ~ ]# ln -sv /usr/local/lib/libmhash.* /usr/lib/
[root@php ~ ] # ldconfig -v
(3)編譯安裝PHP
[root@php ~]#tar -zxvf php-5.6.20.tar.gz
[root@php ~]#cd php-5.6.20
[root@php php-5.6.20]#./configure --prefix=/usr/local/php5 \
> --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd \
>--with-mysqli=mysqlnd --with-openssl \
>--enable-mbstring --with-freetype-dir \
>--with-jpeg-dir --with-png-dir --with-zlib \
>--with-libxml-dir=/usr --enable-xml \
>--enable-sockets --enable-fpm \
>--with-mcrypt --with-config-file-path=/etc \
>--with-config-file-scan-dir=/etc/php.d \
>--with-bz2 --with-mcrypt --with-mhash \
>--with-iconv-dir=/usr/local
configure: error: Cannot find ldap libraries in /usr/lib 解決辦法: cp -frp /usr/lib64/libldap* /usr/lib/ 若是出現的報錯相似於libmysqlclient.so.18這樣的文件not found,查找以後作個軟鏈接,並ldconfig && make clean |
[root@php php-5.6.20]#make && make install
[root@php php-5.6.20]#cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@php php-5.6.20]#chmod +x /etc/init.d/php-fpm
[root@php php-5.6.20]#chkconfig --add php-fpm
[root@php php-5.6.20]#chkconfig php-fpm on
[root@php php-5.6.20]# cd /usr/local/php5/etc/
[root@php etc]# cp php-fpm.conf.default php-fpm.conf
[root@php etc]#cat php-fpm.conf ## 更改如下內容
[global]
pid = run/php-fpm.pid
error_log = log/php-fpm.log
log_level = error
daemonize = yes
[www]
user = www
group = www
listen = 192.168.32.130:9000
pm = dynamic ## 進程管理方式爲dynamic,static爲靜態
pm.max_children = 32 ##子進程最大數根據官方建議,小於2GB內存的服務器,
##能夠只開啓64個進程,4GB以上內存的服務器能夠開啓200個進程。
pm.start_servers = 15 ##動態方式下的起始php-fpm進程數量。
pm.min_spare_servers = 5 ##動態方式下的最小php-fpm進程數量
pm.max_spare_servers = 32 ##動態方式下的最大php-fpm進程數量
[root@php etc]# service php-fpm start
[root@php etc]#cd /var/www/html
[root@php html]# cat index.php ##測試頁面
<!--?php
$link = mysql_connect('192.168.32.128','root','123456');
if ($link)
echo "Success...";
else
echo "Failure...";
mysql_close();
phpinfo();
?>
三、mysql服務器安裝
(1)編譯安裝mysql
[root@mysql ~]# yum -y install gcc cmake
[root@mysql ~]#useradd -s /sbin/nologin -M mysql
[root@mysql ~]#tar -zxvf mysql-5.6.16.tar.gz
[root@mysql ~]# cd mysql-5.6.16
[root@mysql mysql-5.6.16]# cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
> -DSYSCONFDIR=/etc -DMYSQL_DATADIR=/usr/local/mysql/data \
> -DMYSQL_TCP_PORT=3306 \
> -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
> -DMYSQL_USER=mysql -DEXTRA_CHARSETS=all \
> -DWITH_READLINE=1 -DWITH_SSL=system \
> -DWITH_EMBEDDED_SERVER=1 \
> -DENABLED_LOCAL_INFILE=1 \
> -DWITH_INNOBASE_STORAGE_ENGINE=1
[root@mysql mysql-5.6.16]#make &&make install
(2)配置mysql
[root@mysql mysql-5.6.16]#cd /usr/local/mysql
[root@mysql mysql]# chown -R mysql.mysql /usr/local/mysql/
[root@mysql mysql]# ./scripts/mysql_install_db --user=mysql \
>--datadir=/usr/local/mysql/data ##Mysql初始化
[root@mysql mysql]# ls data/
mysql performance_schema test
[root@mysql mysql]#cp support-files/my-medium.cnf /etc/my.cnf
[root@mysql mysql]#cp support-files/mysql.server /etc/init.d/mysqld
[root@mysql mysql]# chmod +x /etc/init.d/mysqld
[root@mysql mysql]#chkconfig mysqld on
(3)環境變量設置
[root@mysql ~]# vim /etc/profile
PATH=/bin:/usr/local/mysql/bin/ :$PATH
[root@mysql ~]# source /etc/profile
[root@mysql ~]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/mysql/lib/
[root@mysql ~]# ldconfig
(4)數據庫受權
mysql> grant all privileges on *.* to root@% identified by '123456';
mysql> grant all privileges on *.* to root@'localhost' identified by '123456';
mysql> flush privileges;
(5)測試