linux快速掌握第十五章 編譯 lnmp

Linux+nginx+mysql+php

編譯 nginx

1: 下載 http://nginx.org/en/download.html

選擇 stable 版本下載

2: 解壓

<code># tar zxf nginx.xxxx.tar.gz/<code>

3: 配置

<code>#./configure --prefix=/usr/local/nginx/<code>

如果提示缺少 pcre 庫,

則從 http://www.pcre.org/

假設解壓在/usr/local/src/pcre-source 假設安裝在/usr/local//pcre

4: 再次配置

1.6.X 版本,要求指定 pcre 的源碼目錄,即:

<code>#./configure --prefix=/usr/local/nginx \\--with-pcre=/usr/local/src/pcre-source/<code>

之前的版本, 指定 pcre 的安裝目錄,即:

<code>#./configure --prefix=/usr/local/nginx \\--with-pcre=/usr/local/pcre/<code>

5: make && make install 6: 啟動 nginx

<code>./sbin/nginx/<code>

7: 啟動時,極易出現端口被佔的錯誤,如下


linux快速掌握第十五章 編譯 lnmp

錯誤提示

這是因為 80 端口已被 apache 或其他 webserver 佔據, 可以用 ps 命令來查找可以進程,然後殺掉.

Pkill -9 進程名如 pkill -9 httpd或 kill 進程號

8: 連接,從局域網內連接 nginx,

如果連接不能,先 ping 測試,2 臺機器之間網絡是否通,

再在服務器上 telnet localhost 80

如果 2 者都能,但外界連不上 80 端口,則是防火牆的原因.

service iptables stop

再次連接,出現以下界面,則安裝成功


linux快速掌握第十五章 編譯 lnmp

安裝成功

編譯安裝 PHP

<code>#yum install gd zlib libxml2 libxml2-devel libjpeg libjpeg-devel libpng libpng-devel/<code>

解壓,cd 到 php-5.x

<code># ./configure --prefix=/usr/local/php \\--with-gd \\
--enable-gd-native-ttf \\
--enable-gd-jis-conv \\
--with-mysql=mysqlnd \\
--enable-mysqlnd \\
--with-pdo-mysql=mysqlnd \\
--enable-fpm /<code>

--enable-fpm 是讓 PHP 作為獨立的進程來運行(默認佔據 9000 端口)

如果是和 apache 配合,PHP 一般是作為 apache 的模塊來使用

<code># cd /usr/local/php
# cp etc/php-fpm.conf.default etc/php-fpm.conf
#cp /usr/local/src/php-5.5.13/php.ini-development ./lib/php.ini
#./sbin/php-fpm/<code>

整合 nginx 和 PHP

<code>Vim /path/to/nginx.conf/<code>


linux快速掌握第十五章 編譯 lnmp

根據實際情況修改,例:


linux快速掌握第十五章 編譯 lnmp


也可以如下方式:


linux快速掌握第十五章 編譯 lnmp

讓 nginx 的最新配置文件生效

<code># ./sbin/nginx -s reload/<code>

再次請求xx.php,看到如下類似效果,即整合成功


linux快速掌握第十五章 編譯 lnmp

編 譯 MySQL

http://ftp.nchu.edu.tw/Unix/Database/MySQL/Downloads/MySQL-5.5/mysql-5.5.30-linux2.6-x86_64.tar.gz

MySQL 的安裝稍複雜一些(主要是編譯後的配置及初始化),大家注意,碰到開源軟件

1:官網的安裝介紹

2: 下載源碼後,一般有 README/INSTALL

3: ./configure --help

我們可以下載 2 進製版本來安裝:

官方示例:

<code>shell> groupadd mysql
shell> useradd -r -g mysql mysql
shell> cd /usr/local
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell>/>shell> chown -R root .
shell> chown -R mysql data/<code>

具體安裝流程:

<code># groupadd mysql
[root@bogon mysql5.5]# useradd -g mysql mysql
[root@bogon mysql5.5]# cd /usr/local/mysql5.5/
#chown -R mysql .
# chgrp -R mysql . 
# ./scripts/mysql_install_db --user=mysql/<code>

如果提示如下錯誤:

<code>/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory/<code>

<code># yum install libaioso.1 libaio/<code>

然後再次執行

<code># chown -R root .
# chown -R mysql data # mkdir /var/run/mysqld
# chown mysql /var/run/mysqld
# chgrp mysql /var/run/mysqld

# ./bin/mysqld_safe --user=mysql &/<code>

mysql 連接

Mysqld 安裝後,連接經常出現找不到 sock 的情況

<code>ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)/<code>


linux快速掌握第十五章 編譯 lnmp

錯誤提示

我們用 2 個辦法來解決

1: 建立軟件鏈接

<code>#ln /var/lib/mysql/mysql.sock /tmp/mysql.sock  

/<code>

2: 查看 mysql --help


linux快速掌握第十五章 編譯 lnmp

<code>Mysql -S /path/to/mysql.sock/<code>


Mysql 修改密碼

Mysql 用戶的密碼,存儲在一個系統庫裡的---mysql


linux快速掌握第十五章 編譯 lnmp

注意: mysql 用戶權限檢測,檢測 Host,User,Password

<code>mysql> update user set Password=password('123456') where Host='localhost' and User='root'; 
mysql> delete from user where Password='';
mysql> flush privileges;/<code>


分享到:


相關文章: