目錄
1. LAMP 架構介紹
其實就是四個大寫字母的縮寫秒拔,分別是 Linux + Apache + MySQL + PHP顽素,其中PHP必須與Apache在同一臺機器,而 MySQL 可以不與他們兩在一起烛占,從而實現 “站庫分離”
1.1 LAMP 架構圖
1.2 Apache
Apache 目前是一個基金會的名稱胎挎,實際提供 http 服務的程序其實叫做 httpd沟启,但由于其出品的第一版 http 服務程序叫做 apache,所以人們將該名稱沿用至今犹菇。所以我們可以將 apache 與 httpd 當做是同一樣東西德迹,即 Web 服務器軟件。
Apache 官網
1.3 MySQL
關系型數據庫揭芍,由 MySQL AB 公司開發(fā)胳搞,該公司于 2008 年被 SUN 公司收購,而 SUN 公司于 2009 年被 Oracle 收購称杨。
MySQL 官網
1.4 MariaDB
MySQL 被收購后肌毅,其創(chuàng)始人 Michael Widenius 協(xié)同大量的 MySQL 原班人馬創(chuàng)建了 MariaDB,所以從使用上姑原,MariaDB 與 MySQL 區(qū)別不大悬而。
MariaDB 官網
1.5 PHP
超文本預處理器,用于提供 Apache 與 MySQL 之間的交互页衙。原是由 Perl 語言編寫摊滔,到目前已經吸取了 Perl、Java店乐、C語言 的特點。但PHP應用于移動端的表現不好呻袭。當前更流行Java眨八、Go、Python左电。
PHP 官網
2. LAMP 各軟件的版本
2.1 Apache
- 最新版本:2.4
- 主流版本:2.4
2.2 MySQL
- 分類
版本 | 解釋 |
---|---|
Community | 社區(qū)版 |
Enterprise | 企業(yè)版 |
GA | Generally Available廉侧,通用版,常用于生產環(huán)境 |
DMR | Development Milestone Release篓足,里程碑版段誊,有較大的變化 |
RC | Release Candidate,發(fā)型候選版栈拖,屬于替補 |
Beta | 公測版 |
Alpha | 內測版 |
- 最新版本:MySQL 5.7 GA / MySQL 8.0 DMR
- 主流版本:MySQL 5.6 GA
2.3 MariaDB
分類:基本上沿用 MySQL 分類
最新版本:MariaDB 5.5 GA / MariaDB 10.3 GA
主流版本:MariaDB 10.2 GA
MariaDB 與 MySQL 的對應關系
MariaDB | MySQL |
---|---|
5.5 | 5.5 |
10.0 | 5.6 |
2.4 PHP
- 最新版本:5.6 / 7.1
- 主流版本:5.6
3. MySQL 安裝
3.1 下載连舍、解壓
- 將安裝包下載到 /usr/local/src/ 中(300MB)
[root@localhost ~]# cd /usr/local/src
[root@localhost src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
- 安裝包解壓縮,并放于正式安裝目錄
[root@localhost src]# tar -xzvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
[root@localhost src]# mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql
[root@localhost src]# cd /usr/local/mysql
3.2 建立賬戶與目錄
- 建立使用 MySQL 的賬戶
[root@localhost mysql]# useradd mysql
- 建立存放數據的目錄
[root@localhost mysql]# mkdir /data/
3.3 安裝
- 執(zhí)行安裝命令:當運行完安裝腳本后涩哟,若在輸出中看到 兩個 OK 則表示成功安裝
## 純凈系統(tǒng)索赏,還沒裝Perl,會報錯
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql # 只需提前創(chuàng)建 /data/即可贴彼,而 /data/mysql 會由該腳本自動建立
-bash: ./scripts/mysql_install_db: /usr/bin/perl: 壞的解釋器: 沒有那個文件或目錄
## 那就裝個 Perl
[root@localhost mysql]# yum -y install perl
## 再試一次潜腻,又提示沒有 Dumper
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
Data::Dumper
## 那就找找這個 Dumper(要是嫌一個一個試太麻煩,全都裝也行)
[root@localhost mysql]# yum list | grep -i dumper
abi-dumper.noarch 1.1-3.el7 epel
perl-Data-Dumper.x86_64 2.145-3.el7 base
perl-Data-Dumper-Concise.noarch 2.020-6.el7 epel
perl-Data-Dumper-Names.noarch 0.03-17.el7 epel
perl-XML-Dumper.noarch 0.81-17.el7 base
php-symfony-var-dumper.noarch 2.8.12-2.el7 epel
vtable-dumper.x86_64 1.1-1.el7 epel
## 其實真正缺少的是 perl-Data-Dumper.x86_64
[root@localhost mysql]# yum -y install perl-Data-Dumper
## 再試一次器仗,又說缺 **libaio.so.1**
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
## 查查看這個文件包含在哪個安裝包中
[root@localhost mysql]# yum provides */libaio.so.1
已加載插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyuncs.com
* epel: mirrors.sohu.com
* extras: mirrors.aliyuncs.com
* updates: mirrors.aliyuncs.com
libaio-0.3.109-13.el7.i686 : Linux-native asynchronous I/O access library
源 :base
匹配來源:
文件名 :/lib/libaio.so.1
libaio-0.3.109-13.el7.x86_64 : Linux-native asynchronous I/O access library
源 :base
匹配來源:
文件名 :/lib64/libaio.so.1
## 看來就是她了:libaio-0.3.109-13.el7.x86_64融涣,缺少補啥吧!
[root@localhost mysql]# yum -y install libaio-0.3.109-13.el7.x86_64
## 最后再裝一次
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
【成功】
3.4 配置
- 將安裝包中帶有的 MySQL 配置文件復制到 /etc/ 下(CentOS 7 初始安裝時就已經有 /etc/my.cnf 了,所以其實不替換也可以威鹿,只要保證有必要的配置信息)
## 在此我采用替換的方法妓盲,所以要提前備份一下原有的 /etc/my.cnf
[root@localhost mysql]# mv /etc/my.cnf /etc/my.cnf.bak
[root@localhost mysql]# cp support-files/my-default.cnf /etc/my.cnf
- 修改配置文件內容
[root@localhost mysql]# vi /etc/my.cnf
1 # For advice on how to change settings please see
2 # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
3 # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
4 # *** default location during install, and will be replaced if you
5 # *** upgrade to a newer version of MySQL.
6
7 [mysqld]
8
9 # Remove leading # and set to the amount of RAM for the most important data
10 # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
11 # innodb_buffer_pool_size = 128M
12
13 # Remove leading # to turn on a very important data integrity option: logging
14 # changes to the binary log between backups.
15 # log_bin
16
17 # These are commonly set, remove the # and set as required.
18 basedir = /usr/local/mysql # 主要是這兩行
19 datadir = /data/mysql
20 port = 3306
21 # server_id = .....
22 socket = /tmp/mysql.sock
23
24 # Remove leading # to set options mainly useful for reporting servers.
25 # The server defaults are faster for transactions and fast SELECTs.
26 # Adjust sizes as needed, experiment to find the optimal values.
27 # join_buffer_size = 128M
28 # sort_buffer_size = 2M
29 # read_rnd_buffer_size = 2M
30
31 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
- 將 MySQL 服務的啟動程序復制到 /etc/init.d/mysqld 下
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]# chmod 755 /etc/init.d/mysqld
- 修改啟動程序內容
$ vi /etc/init.d/mysqld
.
.
.
46 basedir=/usr/local/mysql
47 datadir=/data/mysql
.
.
.
259 case "$mode" in
260 'start')
261 # Start daemon
262
263 # Safeguard (relative paths, core dumps..)
264 cd $basedir
265
266 echo $echo_n "Starting MySQL"
267 if test -x $bindir/mysqld_safe
268 then
269 # Give extra arguments to mysqld with the my.cnf file. This script
270 # may be overwritten at next upgrade.
271 $bindir/mysqld_safe --datadir="$datadir" --basedir="$basedir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
## 主要是上面這一行,添加 --basedir="$basedir"
- 將 mysqld 添加至開機啟動
[root@localhost mysql]# chkconfig --add mysqld
3.5 MySQL 的啟動
[root@localhost mysql]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/data/mysql/localhost.localdomain.err'.
.. SUCCESS!
## 也可以采用以下命令啟動 MySQL
[root@localhost mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql
3.6 啟動情況查看
## 看看是否按照我們的設置正確開啟了服務专普,如 basedir悯衬、datadir、port檀夹、user 等
[root@localhost mysql]# ps aux | grep mysql
root 41896 0.0 0.0 113304 1648 pts/0 S 6月26 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --basedir=/usr/local/mysql --pid-file=/data/mysql/localhost.localdomain.pid
mysql 42074 3.4 11.7 1300828 455004 pts/0 Sl 6月26 0:02 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/localhost.localdomain.err --pid-file=/data/mysql/localhost.localdomain.pid --socket=/tmp/mysql.sock --port=3306
root 42103 0.0 0.0 112720 972 pts/0 S+ 00:00 0:00 grep --color=auto mysql
## 看看端口情況
[root@localhost mysql]# netstat -ltnp | grep mysql
tcp6 0 0 :::3306 :::* LISTEN 42074/mysqld
3.7 MySQL 的關閉
-
service mysqld stop
或/etc/init.d/mysqld
推薦筋粗!最溫和的關閉方式,但可能比較慢
-
killall mysqld
會先停止當前讀寫炸渡,然后將威脅如此盤的數據寫入磁盤娜亿,寫完后才會殺死進程
注意:強烈不推薦使用 kill PID 的方法進行 MySQL 的關閉,有時使用上述兩種方法后缺發(fā)現進程遲遲未關閉蚌堵,這時很有可能是由于數據量較大买决,還在逐漸寫入磁盤,此時如果強行 kill 的話吼畏,極有可能造成數據丟失甚至磁盤損壞
4. Mariadb 安裝
與 MySQL 大同小異督赤,這里就僅列出具體的配置命令,不再做拍錯以及輸出的展示
4.1 下載泻蚊、解壓
$ cd /usr/local/src
$ wget https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz
$ tar -xzvf mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz
$ mv mariadb* /usr/local/mariadb
$ cd /usr/local/mariadb
4.2 增加賬戶躲舌、目錄
$ useradd mysql
$ mkdir /data/
4.3 安裝
## 這里與 MySQL 的安裝有所區(qū)別,需要指定 basedir性雄,否則可能去 /etc/my.cnf 中尋找
./scripts/mysql_install_db --user=mysql --datadir=/data/mariadb --basedir=/usr/local/mariadb
4.4 配置
- 復制配置文件:mariadb 安裝包中提供多種配置文件如:small没卸,large,huge 等秒旋,主要是對數據庫緩存設置的不同
$ cp /usr/local/mariadb/support-files/my-small.cnf /usr/local/mariadb/my.cnf
- 修改配置文件:定義 basedir 和 datadir
$ vim /usr/local/mariadb/my.cnf
- 復制啟動文件
$ cp /usr/local/mariadb/support-files/mysql.server /etc/init.d/mariadb
- 修改啟動文件:主要修改 basedir约计、datadir、conf 等內容
$ vim /etc/init.d/mariadb
basedir=/usr/local/mariadb
datadir=/root/mariadb
conf=/usr/local/mariadb/my.cnf
在 case "$mode" in
'start') 中的 $bindir /mysqld_safe 后添加 --defaults-file="$conf"
5. Apache 安裝
安裝 Apache 前需要安裝 apr 以及 apr-util 迁筛,他們是可移植運行庫煤蚌,能夠幫助 Apache 在不同平臺間移植
5.1 安裝 apr
- 養(yǎng)成良好習慣,將 apr 安裝包下載至 /usr/local/src/ 中
[root@VMware01 src]# cd /usr/local/src/
[root@VMware01 src]# wget http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz
- 解壓縮
[root@VMware01 src]# tar xzvf apr-1.6.3.tar.gz
- 編譯瑰煎、安裝
[root@VMware01 src]# cd apr-1.6.3
[root@VMware01 apr-1.6.3]# ./configure --prefix=/usr/local/apr
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
Configuring APR library
Platform: x86_64-pc-linux-gnu
checking for working mkdir -p... yes
APR Version: 1.6.3
checking for chosen layout... apr
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/usr/local/src/apr-1.6.3':
configure: error: no acceptable C compiler found in $PATH # 沒有編譯器铺然。。酒甸。
See `config.log' for more details
## 那就裝個 gcc
[root@VMware01 apr-1.6.3]# yum -y install gcc
## 在執(zhí)行一次 ./configure
[root@VMware01 apr-1.6.3]# ./configure --prefix=/usr/local/apr
.
.
.
config.status: executing libtool commands
rm: cannot remove 'libtoolT': No such file or directory # 報錯 libtoolT
config.status: executing default commands
## 查一下啥是 libtool
[root@VMware01 apr-1.6.3]# yum list | grep libtool
libtool-ltdl.x86_64 2.4.2-22.el7_3 @anaconda
libtool.x86_64 2.4.2-22.el7_3 base
libtool-ltdl.i686 2.4.2-22.el7_3 base
libtool-ltdl-devel.i686 2.4.2-22.el7_3 base
libtool-ltdl-devel.x86_64 2.4.2-22.el7_3 base
## 估計又是庫的問題魄健,那就專找 *-devel 這種包來安裝
[root@VMware01 apr-1.6.3]# yum -y install libtool-ltdl-devel
## 再試一次,還是報錯插勤,那只能Google了沽瘦,得出結果是修改 configure 文件的某些內容
[root@VMware01 apr-1.6.3]# vim configure
.
.
.
30433 case $ac_file$ac_mode in
30434 "libtool":C)
30435
30436 # See if we are running on zsh, and set the options which allow our
30437 # commands through without removal of \ escapes.
30438 if test -n "${ZSH_VERSION+set}" ; then
30439 setopt NO_GLOB_SUBST
30440 fi
30441
30442 cfgfile="${ofile}T"
30443 trap "$RM \"$cfgfile\"; exit 1" 1 2 15
30444 # $RM "$cfgfile" #注釋掉該行即可
.
.
.
## 在運行一次
[root@VMware01 apr-1.6.3]# ./configure --prefix=/usr/local/apr
【成功】
[root@VMware01 apr-1.6.3]# make && make install
5.2 安裝 apr-util
- 養(yǎng)成良好習慣革骨,將 apr 安裝包下載至 /usr/local/src/ 中
##
[root@VMware01 apr-1.6.3]# cd /usr/local/src/
[root@VMware01 src]# wget http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.bz2
- 解壓縮
[root@VMware01 src]# tar -xjvf apr-util-1.6.1.tar.bz2
- 編譯、安裝
[root@VMware01 src]# cd apr-util-1.6.1
[root@VMware01 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
【成功】
[root@VMware01 apr-util-1.6.1]# make && make install
.
.
.
xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory
#include <expat.h> #報錯析恋,缺少 expat.h
## 查一下哪些rpm包含有 expat.h 文件
[root@VMware01 apr-util-1.6.1]# yum provides */expat.h
已加載插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
expat-devel-2.1.0-10.el7_3.i686 : Libraries and header files to develop applications using expat
源 :base
匹配來源:
文件名 :/usr/include/expat.h
expat-devel-2.1.0-10.el7_3.x86_64 : Libraries and header files to develop applications using expat
源 :base
匹配來源:
文件名 :/usr/include/expat.h
xulrunner-devel-31.6.0-2.el7.centos.i686 : Development files for Gecko
源 :base
匹配來源:
文件名 :/usr/include/xulrunner-31.6.0/expat.h
xulrunner-devel-31.6.0-2.el7.centos.x86_64 : Development files for Gecko
源 :base
匹配來源:
文件名 :/usr/include/xulrunner-31.6.0/expat.h
## 找名字最像的那個
[root@VMware01 apr-util-1.6.1]# yum -y install expat-devel
## 再試一次
[root@VMware01 apr-util-1.6.1]# make && make install
【成功】
5.3 安裝工 apache
- 下載
[root@VMware01 apr-util-1.6.1]# cd /usr/local/src/
[root@VMware01 src]# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.33.tar.gz
- 解壓縮
[root@VMware01 src]# tar xzvf httpd-2.4.33.tar.gz
- 編譯良哲、安裝
[root@VMware01 src]# cd httpd-2.4.33
[root@VMware01 httpd-2.4.33]# ./configure \
> --prefix=/usr/local/apache2.4 \
> --with-apr=/usr/local/apr \
> --with-apr-util=/usr/local/apr-util \
> --enable-so \ # 開啟對動態(tài)擴展模塊的支持
> --enable-mods-shared=most # 指定要支持哪些模塊,most代表最多
.
.
.
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/ #報錯助隧,缺 pcre-config
## 找 pcre-config 文件筑凫,并安裝相應 rpm
[root@VMware01 httpd-2.4.33]# yum provides */pcre-config
已加載插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
pcre-devel-8.32-17.el7.i686 : Development files for pcre
源 :base
匹配來源:
文件名 :/usr/bin/pcre-config
pcre-devel-8.32-17.el7.x86_64 : Development files for pcre
源 :base
匹配來源:
文件名 :/usr/bin/pcre-config
## 就是他了
[root@VMware01 httpd-2.4.33]# yum -y install pcre-devel
## 再次執(zhí)行,成功
[root@VMware01 src]# cd httpd-2.4.33
[root@VMware01 httpd-2.4.33]# ./configure \
> --prefix=/usr/local/apache2.4 \
> --with-apr=/usr/local/apr \
> --with-apr-util=/usr/local/apr-util \
> --enable-so \
> --enable-mods-shared=most
【成功】
- make && make install
[root@VMware01 httpd-2.4.33]# make
/usr/local/apr/build-1/libtool --silent --mode=link gcc -std=gnu99 -g -O2 -pthread -o htpasswd htpasswd.lo passwd_common.lo /usr/local/apr-util/lib/libaprutil-1.la /usr/local/apr/lib/libapr-1.la -lrt -lcrypt -lpthread -ldl -lcrypt
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_GetErrorCode'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetEntityDeclHandler'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_ParserCreate'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetCharacterDataHandler'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_ParserFree'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetUserData'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_StopParser'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_Parse'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_ErrorString'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetElementHandler'
collect2: error: ld returned 1 exit status
make[2]: *** [htpasswd] 錯誤 1
make[2]: 離開目錄“/usr/local/src/httpd-2.4.33/support”
make[1]: *** [all-recursive] 錯誤 1
make[1]: 離開目錄“/usr/local/src/httpd-2.4.33/support”
make: *** [all-recursive] 錯誤 1
## 網上教的方法是重新安裝一遍 apr-util并村,那只能試試了:刪掉 /usr/local/apr-util 目錄巍实,重新編譯apr-util,重新編譯 apache哩牍, 竟然真的成功了
- 開啟 apache
[root@VMware01 httpd-2.4.33]# cd /usr/local/apache2.4
[root@VMware01 apache2.4]# ./bin/apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::8434:c43d:f653:7150. Set the 'ServerName' directive globally to suppress this message
- 查看啟動情況
[root@VMware01 httpd-2.4.33]# netstat -ltnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 946/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1254/master
tcp6 0 0 :::3306 :::* LISTEN 31979/mysqld
tcp6 0 0 :::80 :::* LISTEN 104448/httpd
tcp6 0 0 :::22 :::* LISTEN 946/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1254/master
[root@VMware01 httpd-2.4.33]# ps aux | grep httpd
root 104448 0.0 0.1 97628 2548 ? Ss 10:15 0:00 /usr/local/apache2.4/bin/httpd -k start
daemon 104449 0.0 0.2 384456 4420 ? Sl 10:15 0:00 /usr/local/apache2.4/bin/httpd -k start
daemon 104450 0.0 0.1 384456 2388 ? Sl 10:15 0:00 /usr/local/apache2.4/bin/httpd -k start
daemon 104451 0.0 0.1 384456 2384 ? Sl 10:15 0:00 /usr/local/apache2.4/bin/httpd -k start
root 104537 0.0 0.0 112720 972 pts/0 S+ 10:17 0:00 grep --color=auto httpd
- 查看當前 apache 支持哪些模塊
static:靜態(tài)棚潦,直接編譯進主腳本中的模塊
shared:共享的,擴展模塊膝昆,在 /usr/local/apache2.4/modules/ 中的模塊
[root@VMware01 ~]# /usr/local/apache2.4/bin/httpd -M
Loaded Modules:
core_module (static)
so_module (static)
http_module (static)
mpm_event_module (static)
authn_file_module (shared)
authn_core_module (shared)
authz_host_module (shared)
authz_groupfile_module (shared)
authz_user_module (shared)
authz_core_module (shared)
access_compat_module (shared)
auth_basic_module (shared)
reqtimeout_module (shared)
filter_module (shared)
mime_module (shared)
log_config_module (shared)
env_module (shared)
headers_module (shared)
setenvif_module (shared)
version_module (shared)
unixd_module (shared)
status_module (shared)
autoindex_module (shared)
dir_module (shared)
alias_module (shared)
6. PHP 安裝
6.1 下載丸边、解壓
[root@VMware01 src]# cd /usr/local/src/
[root@VMware01 src]# wget http://cn2.php.net/distributions/php-5.6.32.tar.bz2
[root@VMware01 src]# tar -xjvf php-5.6.32.tar.bz2
[root@VMware01 src]# cd php-5.6.32
6.2 編譯、安裝(拍錯的方式不再講述荚孵,前面的例子已經有大體的方法)
[root@VMware01 php-5.6.32]# ./configure \
> --prefix=/usr/local/php \
> --with-apxs2=/usr/local/apache2.4/bin/apxs \ #Apache 的工具妹窖,自動把擴展模塊放到 modules 目錄中
> --with-config-file-path=/usr/local/php/etc \
> --with-mysql=/usr/local/mysql \ # 三種不同的 MySQL 驅動
> --with-pdo-mysql=/usr/local/mysql \
> --with-mysqli=/usr/local/mysql/bin/mysql_config \
> --with-libxml-dir \
> --with-gd \
> --with-jpeg-dir \
> --with-png-dir \
> --with-freetype-dir \
> --with-iconv-dir \
> --with-zlib-dir \
> --with-bz2 \
> --with-openssl \
> --with-mcrypt \
> --enable-soap \
> --enable-gd-native-ttf \
> --enable-mbstring \
> --enable-sockets \
> --enable-exif
[root@VMware01 php-5.6.32]# make && make install
6.3 查看php帶有的模塊
[root@VMware01 php-5.6.32]# /usr/local/php/bin/php -m
[PHP Modules]
bz2
Core
ctype
date
dom
ereg
exif
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mcrypt
mysql
mysqli
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
soap
sockets
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib
6.4 查看 /usr/local/apache2.4/conf/httpd.conf 是否已連接 php 模塊
[root@VMware01 php-5.6.32]# vim /usr/local/apache2.4/conf/httpd.conf
.
.
.
151 LoadModule php5_module modules/libphp5.so # php 已經將該模塊寫進了 httpd 的配置文件
.
.
.
6.5 復制 php 配置文件
[root@VMware01 php-5.6.32]# cp php.ini-production /usr/local/php/etc
7. PHP 與 Apache 的連接
7.1 放通 iptables 訪問 http
[root@VMware01 local]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
7.2 新建 php 頁面
[root@VMware01 local]# vim /usr/local/apache2.4/htdocs/index.php
1 <?php
2 phpinfo();
3 ?>
7.3 訪問網站地址
7.4 訪問 php 頁面(并未將php語句解釋出來)
7.5 修改 httpd.conf 文件
[root@VMware01 php-5.6.32]# vi /usr/local/apache2.4/conf/httpd.conf
.
.
.
193 ServerName www.example.com:80
.
.
.
200 <Directory />
201 AllowOverride none
202 Require all granted
203
204 </Directory>
.
.
.
387 #
388 AddType application/x-compress .Z
389 AddType application/x-gzip .gz .tgz
390 AddType application/x-httpd-php .php
.
.
.
251 <IfModule dir_module>
252 DirectoryIndex index.html index.php
253 </IfModule>
7.6 檢查 httpd.conf 語法
[root@VMware01 local]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
7.7 重新載入配置文檔
[root@VMware01 local]# /usr/local/apache2.4/bin/apachectl graceful
7.8 再次訪問 php 頁面
7.9 無法解析 PHP 時的基本排錯思路
- 查看是否按照上文進行 httpd.conf 的配置
- 查看 apache 是否加載 PHP:
/usr/local/apache2.4/bin/apachectl -M
- 查看 apache 的 modules 目錄中是否有 PHP 模塊:
ls /usr/local/apache2.4/modules/
- 查看 httpd.conf 中是否設定加載了 PHP:
LoadModule php5_module modules/libphp5.so