linux 下安裝 LNMP 最簡單的安裝方法
最近在安裝linux lnmp centos7環境的時候還是有點小問題,從頭總結了一下。
安裝的版本是 nginx 1.12 mysql 5.7 php 5.6
一,安裝nginx
1.下載
安裝前確認安裝擴充套件 沒有的直接 yum install wget gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel
[[email protected] ~]# cd /usr/local/src/
2.解壓
[[email protected] src]# tar zxvf nginx-1.12.2.tar.gz
3. 預編譯
[[email protected] src]# cd nginx-1.12.2
[[email protected] nginx-1.12.2]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-pcre --with-http_gzip_static_module
解釋
--with-http_gzip_static_module :支援壓縮
--with-http_stub_status_module :支援nginx狀態查詢
--with-http_ssl_module :支援https
--with-pcre :為了支援rewrite重寫功能,必須制定pcre
可根據自己需求
/**
--with-http_dav_module #啟用支援(增加PUT,DELETE,MKCOL:建立集合,COPY和MOVE方法) --with-http_addition_module #啟用支援(作為一個輸出過濾器,支援不完全緩衝,分部分相應請求) --with-http_sub_module #啟用支援(允許一些其他文字替換Nginx相應中的一些文字) --with-http_flv_module #啟用支援(提供支援flv視訊檔案支援) --with-http_mp4_module #啟用支援(提供支援mp4視訊檔案支援,提供偽流媒體服務端支援)
make -j 4 && make install 4核編譯
*/
4. [[email protected] src]# make && make install
5.新增系統變數(方便啟停服務)
[[email protected] nginx-1.12.2]# vim /etc/profile
我一般是在56行新增 export PATH=/usr/local/nginx/sbin:$PATH
重啟配置 source /etc/profile
[[email protected] nginx-1.12.2]# nginx -V
nginx 安裝成功
二、安裝mysql 5.7
用的是rpm 好處是不用配置那麼多東西 。 配置不用管。
[[email protected] ~]# cd /usr/local/src/ [[email protected] src]# wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
[[email protected] src]# rpm -ivh mysql57-community-release-el7-8.noarch.rpm
[[email protected] src]# yum -y install mysql-server
(也可以指定安裝目錄 yum --installroot=/usr/local/mysql --releasever=/ -y install mysql-server 可以自己研究)
根據步驟安裝就可以了,
預設配置檔案路徑: 配置檔案:/etc/my.cnf 日誌檔案:/var/log/var/log/mysqld.log 服務啟動指令碼:/usr/lib/systemd/system/mysqld.service
socket檔案:/var/run/mysqld/mysqld.pid
啟動mysql服務
service mysqld restart
重置密碼
[[email protected] ~]# grep "password" /var/log/mysqld.log
可以看到 輸入 mysql -u root -p 密碼 進入 第一次登陸 ,需要重置密碼 要不什麼也不能操作
接下來重置密碼:5.7.20 為了安全密碼 必須包含 數字字母符號
alter user 'root'@'localhost' identified by 'Root!!2018';
也可以 直接再新增新使用者
grant all on *.* to 'rootadmin'@'%' identified by '[email protected]@' with grant option;
增加root使用者指定可以任意IP登入,如果想限制只能讓指定IP登入請把%替換成IP地址
最後記得重新整理許可權;
flush privileges ;
三、安裝php
需要的外掛 包
yum -y install gcc gcc-c++ libxml2 libxml2-devel bzip2 bzip2-devel libmcrypt libmcrypt-devel openssl openssl-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel readline readline-devel libxslt-devel perl perl-devel psmisc.x86_64 recode recode-devel libtidy libtidy-devel epel-releaselibmcrypt-devel
1.下載
[[email protected] ~]# cd /usr/local/src/
[[email protected] src]# wget http://cn2.php.net/distributions/php-5.6.32.tar.gz
2.解壓
[[email protected] src]# tar zxvf php-5.6.32.tar.gz
3. 預編譯
進入目錄 [[email protected] src]
# cd php-5.6.32
建立php-fpm使用者,並禁止登入;[[email protected] php-5.6.32]# useradd -s /sbin/nologin php-fpm
./configure --prefix=/usr/local/php --sysconfdir=/usr/local/php/etc --with-config-file-path=/usr/local/php/etc/ --with-fpm-user=php-fpm --with-fpm-group=php-fpm --enable-fpm --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mhash --with-openssl --with-zlib --with-bz2 --with-curl --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-zlib --enable-mbstring --with-mcrypt --enable-sockets --with-iconv-dir --enable-zip --with-pcre-dir --with-pear --enable-session --enable-gd-native-ttf --enable-xml --with-freetype-dir --enable-gd-jis-conv --enable-inline-optimization --enable-shared --enable-bcmath --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-mbregex --enable-pcntl --with-xmlrpc --with-gettext --enable-exif --with-readline --enable-ftp --enable-redis
提示錯誤mcrypt.h沒有找到,安裝libmcrypt-devel包,預設的yum源,沒有這個包,需要安裝epel擴充套件源後,才可以安裝。
[[email protected] php-5.6.32]# yum install -y epel-release
[[email protected] php-5.6.32]# yum install -y libmcrypt
[[email protected]t php-5.6.32]# yum install -y libmcrypt-devel
再次執行./configure,沒有錯誤提示,出現Thank you for using PHP,配置OK。
完成後使用echo $?檢視是否安裝正確;[[email protected] php-5.6.32]# make && make install
[[email protected] php-5.6.32]# echo $?
0 0表示上一步的結果成功。
配置檔案
需要將當前目錄下的php.ini檔案拷貝到 php的安裝目錄etc下
[[email protected] php-5.6.32]# cp php.ini-production /usr/local/php/etc/php.ini
php.ini 檔案是在包目錄下的 php.ini-development(開發), php.ini-production(生產)
拷貝php啟動指令碼,php-fpm配置檔案,更改php-fpm許可權為755;新增php-fpm開機啟動;
- [[email protected] php-5.6.32]# cp /usr/local/src/php-5.6.32/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
- (啟動指令碼)
- [[email protected] php-5.6.32]# mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf (就是去掉了末尾的.default )
- [[email protected] php-5.6.32]# chmod 755 /etc/init.d/php-fpm
- [[email protected]]# chkconfig --add php-fpm
- [[email protected]]# service php-fpm start
- Starting php-fpm done
- [[email protected]]# chkconfig php-fpm on
將php的安裝目錄也加入到系統的環境變數 在最後一行加入
vim /etc/profile
export PATH=/usr/local/php/bin:$PATH
source /etc/profile 重新載入
[[email protected] ~]# php -v PHP 5.6.32 (cli) (built: Mar 12 2018 17:43:15) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies完成 接下來就是測試
-----php---安裝成功
在位址列輸入你的ip。然後測試PHP安裝是否成功。確保nginx 和PHP都是執行的哈。
然後需要配置nginx
核心配置的兩個 加入到nginx.conf
vim /usr/local/nginx/conf/nginx.conf
location / { root /www/yingcai; index index.html index.htm index.php; try_files $uri $uri/ /index.php?$query_string; if (!-e $request_filename){ rewrite ^(.*)$ /index.php?s=$1 last; break; } }
將請求轉給php的9000埠 確保nginx 和PHP都是執行的哈。
location ~ \.php$ {
root /www/yingcai; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
我的是根目錄下的www/ 寫個index.php 裡面加入phpinfo(); 看能否成功。
安裝上面的應該沒問題,有問題的留言,大家一塊解決。