1、yum update #更新系統
2、yum install gcc gcc-c++ autoconf automake cmake bison m4 libxml2 libxml2-devel libcurl-devel libjpeg-devel libpng-devel libicu-devel #安裝php、MySQL、Nngix所依賴的包
3、下載以下包 #我把所有源文件都下載在root目錄,讀者可自行修改源文件存放目錄
3.1 libmcrypt-2.5.8.tar.gz
3.2 mcrypt-2.6.8.tar.gz
3.3 mhash-0.9.9.9.tar.gz
3.4 zlib-1.2.8.tar.gz
解壓並安裝如:
#tar -zvxf libmcrypt-2.5.8.tar.gz
#cd libmcrypt-2.5.8
#./configure
#make && make insatll
4、在安裝軟件時如果提示有什麼依賴包沒有安裝的可以再執行yum install * -y (*表示相關包)
1、去官網http://nginx.org/en/download.html下載最nginx-1.10.1.tar.gz的穩定版本
2、編譯步驟如下
1、通過winSCP上傳nginx-1.10.1.tar.gz到/root目錄下
1.1 groupadd -r nginx #新建nginx組
1.2 useradd -r -g nginx -s /bin/false nginx #新建無登錄權限的nginx用戶
1.3 id nginx #查看nginx組及用戶
2、tar -zvxf nginx-1.10.1.tar.gz
3、cd nginx-1.10.1
4、可通過./configure --help查看編譯配置參數,也可參考http://nginx.org/en/docs/configure.html,下列參數要寫在一行中
./configure
--prefix=/usr/local/nginx
--modules-path=/usr/local/nginx/modules
--with-http_ssl_module
--pid-path=/usr/local/nginx/nginx.pid
--user=nginx
--group=nginx
5、make && make install #編譯並安裝
6、啟動nginx
6.1 cd /usr/local/nginx
6.2 sbin/nginx #啟動,可使用sbin/nginx -?查看nginx相關操作命令
7、在/usr/lib/systemd/system目錄下新建nginx.service文件,這樣就可以通過systemctl stop|start|reload nginx.service來操作nginx,也可參考https://www.nginx.com/resources/wiki/start/topics/examples/systemd/,內容如下:
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
1、去官網http://dev.mysql.com/Downloads/MySQL-5.7/mysql-boost-5.7.14.tar.gz下載帶boost的5.7.14版本
2、編譯步驟如下
1、用winSCP上傳mysql-boost-5.7.14.tar.gz到/root目錄下
2、groupadd mysql
3、useradd -r -g mysql -s /bin/false mysql
4、用cmake編譯mysql, 相關參數可以參考https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html,下列參數要寫在一行
cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock
-DSYSCONFDIR=/usr/local/mysql/etc
-DSYSTEMD_PID_DIR=/usr/local/mysql
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
-DMYSQL_DATADIR=/usr/local/mysql/data
-DWITH_BOOST=boost
-DWITH_SYSTEMD=1
5、make && make install
6、配置mysql並初始化數據庫
6.1 cd /usr/local/mysql #進入編譯目錄
6.2 chown -R mysql . #修改目錄所有者
6.3 chgrp -R mysql . #修改目錄組
6.4 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld #配置mysqld服務
6.5 cp /usr/local/mysql/support-files/my-default.cnf /usr/local/mysql/my.cnf #配置my.cnf
6.5.1 復制以下內容到my.cnf文件中的[mysqld]下
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
server_id = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
6.5 chkconfig mysqld on #設置mysqld開機自啟
6.6 bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data #初始化數據庫
6.7 bin/mysqld --user=mysql & #啟動mysql, 如果報Please read "Security" section of the manual to find out how to run mysqld as root!,就在my.cnf中加入user=root, 表示以root用戶啟動
7、修改root用戶登錄密碼並允許root用戶遠程登錄
7.1 mysql -u root --skip-password
7.2 ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
7.3 允許root用戶遠程登錄
7.3.1 use mysql;
7.3.2 update user set host='%' where user='root' and host='localhost'; #允許
(update user set host='localhost' where user='root'; #禁用)
7.3.3 flush privileges;
7.3.4 service mysqld restart
8、解決service mysqld start|stop報MySQL server PID file could not be found!或者Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe), 其實可通過閱讀此文件解決相關錯誤
8.1 chmod 777 /usr/local/mysql #因我設置mysqld.pid文件保存在/usr/local/mysql目錄,所以保證其有可寫權限
8.2 通過winSCP修改/etc/init.d/mysqld文件
8.2.1 basedir=/usr/local/mysql #手動指定
8.2.2 datadir=/usr/local/mysql/data #手動指定
8.2.3 mysqld_pid_file_path=/usr/local/mysql/mysqld.pid #手動指定
8.2.4 把此文件中所有未注釋的含有mysqld_safe的字符替換成mysqld
1、去官網http://php.net/downloads.php下載php7.0.10版本
2、編譯步驟如下
1、用winSCP上傳php-7.0.10.tar.gz到/root目錄下
2、tar -zvxf php-7.0.10.tar.gz #解壓
3、配置編譯php參數, 可使用./configure --help命令查看所有編譯配置項目, 下列參數要寫在一行中
./configure
--prefix=/usr/local/php
--exec-prefix=/usr/local/php
--datadir=/usr/local/php
--with-config-file-path=/usr/local/php/etc
--with-mysqli=mysqlnd
--with-pdo-mysql=mysqlnd
--with-fpm-user=nginx
--with-fpm-group=nginx
--with-gd
--with-iconv
--enable-mbstring
--enable-fpm
--enable-mysqlnd
4、make && make install #編譯並安裝
5、cd /usr/local/php #進入編譯目錄
6、修改相關配置文件
6.1 cp /usr/local/php/etc/php.ini.default /usr/local/php/etc/php.ini #php.ini中相關配置依項目需要自行修改,配置nginx支持php參考http://php.net/manual/zh/install.unix.nginx.php
6.2 cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf #去掉[global]項下pid前的;
6.3 cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf #大致在23、24行修改user和group如:user = nginx,group = nginx
7、chmod 777 /usr/local/php/var/run #默認PID文件是寫在/usr/local/php/var/run這個目錄中,所以修改目錄權限
8、sbin/php-fpm #啟動php, 可通過sbin/php-fpm -h 查看相關操作命令列表
9、在/usr/lib/systemd/system目錄下新建php-fpm.service文件,這樣就可以通過systemctl stop|start|reload php-fpm.service來操作php-fpm,內容如下:
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target
Before=nginx.service
[Service]
Type=forking
PIDFile=/usr/local/php/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm
ExecStop=/bin/kill -QUIT `cat /usr/local/php/var/run/php-fpm.pid`
ExecReload=/bin/kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
PrivateTmp=true
[Install]
WantedBy=multi-user.target
五、至此在我的VirturBox中CentOS7.2下成功搭建了LNMP環境