簡(jiǎn)要介紹:
LAMP是Linux+Apache+MySQL+PHP的簡(jiǎn)稱(chēng),是用于搭建web服務(wù)器的一種解決方案。雖然從RHEL 7開(kāi)始Red Hat公司推薦使用MariaDB而不是MySQL,但在我這篇文章當中,我還是決定繼續使用MySQL。
在本文檔中,我使用CentOS 7來(lái)搭建LAMP平臺。系統安裝時(shí)選擇的是basic server版本,詳細版本號為CentOS 7.0.1406,核心版本號為3.10.0-123.el7.x86_64。CentOS 7系統安裝在虛擬機上,IP為172.31.2.2,其可與物理機正常通信。本文檔所涉及的所有操作均使用root賬號進(jìn)行。
這篇文章只是我個(gè)人學(xué)習的總結,主要參考了鳥(niǎo)哥的Linux私房菜和各軟件的官方文檔,但因為本人對PHP技術(shù)和數據庫技術(shù)可以說(shuō)基本不了解,所以里面可能會(huì )有一些設定不很清楚或優(yōu)化不到位的地方,敬請知曉。
安裝Apache軟件
Apache軟件的軟件包名稱(chēng)叫做httpd,因此,要安裝Apache軟件,就使用下述命令:
[root@localhost ~]# yum install httpd

如上圖所示,安裝的Apache 軟件版本為2.4版。根據紅帽官方文檔說(shuō)明,RHEL 7 (或CentOS 7)上可用的Apache版本正是2.4版的。
安裝完成后,Apache是以httpd服務(wù)的形式存在的。因此,要啟動(dòng)Apache并將其設置為開(kāi)機啟動(dòng),就使用命令:
[root@localhost ~]# systemctl start httpd.service
[root@localhost ~]# systemctl enable httpd.service
然后,檢查httpd服務(wù)狀態(tài):
[root@localhost ~]# systemctl status httpd.service

如上圖所示,“enabled”表示httpd服務(wù)已設為開(kāi)機啟動(dòng),“active(running)”則表示httpd服務(wù)正在運行中。
這樣的話(huà),HTTP協(xié)議就已被啟動(dòng)起來(lái)了,由于HTTP協(xié)議使用到tcp端口80,因此防火墻要放通tcp端口80:
[root@localhost ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
重啟防火墻以讓更改立刻生效:
[root@localhost ~]# firewall-cmd --reload
使用以下命令檢查配置是否成功:
[root@localhost ~]# firewall-cmd --list-all

如上圖所示,tcp端口80已放通。
然后這個(gè)時(shí)候,就可以在物理機上使用瀏覽器來(lái)訪(fǎng)問(wèn)剛剛搭建的web服務(wù)器了。不過(guò),因為這個(gè)時(shí)候還未創(chuàng )建任何頁(yè)面,所以它顯示的是Apache軟件自帶的測試頁(yè)面:

設置Apache配置文件
Apache軟件的主配置文件為/etc/httpd/conf/httpd.conf。關(guān)于A(yíng)pache 2.4版軟件的詳細說(shuō)明文檔,可在網(wǎng)頁(yè)http://httpd.apache.org/docs/2.4/en/中查閱到。特別是,關(guān)于主配置文件httpd.conf中各指令的詳細說(shuō)明,可在網(wǎng)頁(yè)http://httpd.apache.org/docs/2.4/mod/directives.html中查閱到。
關(guān)于A(yíng)pache 2.4版軟件的詳細說(shuō)明文檔,也可以將它安裝在本地Linux主機上面,使用命令yum install httpd-manual即可安裝它。安裝完成后,重啟httpd服務(wù)。在web服務(wù)運行正常的情況下,可在本地Linux主機上面使用網(wǎng)址http://localhost/manual/來(lái)訪(fǎng)問(wèn)它。在其它設備上面,則使用相應的網(wǎng)址即可,如在本實(shí)例中,我可以在物理機上使用網(wǎng)址http://172.31.2.2/manual/來(lái)訪(fǎng)問(wèn)它。
另外還需要知道:/etc/httpd/conf.d目錄下以.conf結尾的配置文件也會(huì )被讀??;可加載模塊(如PHP)的配置文件應放置在/etc/httpd/conf.modules.d目錄下,并且也以.conf結尾。
下面介紹一下httpd.conf這個(gè)配置文件的內容(少量配置有修改):
ServerRoot "/etc/httpd" //服務(wù)器根目錄:本配置文件中沒(méi)有使用絕對路徑的地方,都認為是在該目錄下
Listen 80 //偵聽(tīng)80端口
Include conf.modules.d/*.conf
//該設定讓/etc/httpd/conf.modules.d目錄下以.conf結尾的配置文件也會(huì )被讀取進(jìn)來(lái)。DSO對象的配置文件應放置在此目錄下
User apache
Groupapache
//當你使用瀏覽器訪(fǎng)問(wèn)web服務(wù)器時(shí),會(huì )產(chǎn)生相應的httpd進(jìn)程,該進(jìn)程所屬的用戶(hù)和組就由這里設定。
//從這里開(kāi)始,下面的設定適用于“主”服務(wù)器,與虛擬主機區別開(kāi)來(lái)。但如果<VirtualHost>部分未設定這些值,也會(huì )使用這些值
ServerAdmin root@localhost //系統管理員的郵箱。改成自己的郵箱即可。
ServerName www.speedsnail.com //設置主機名。生產(chǎn)環(huán)境中,該主機名應該是能被正確解析成這臺服務(wù)器的IP的。
<Directory />
AllowOverride none
Require all denied
</Directory>
//<Directory 目錄路徑>和</Directory>:用于設定指定目錄(這里是系統根目錄)的訪(fǎng)問(wèn)權限。目錄路徑那里可以使用絕對
//路徑和相對路徑,還可以搭配使用通配符和正則表達式。
//AllowOverride:如果指定目錄下(這里是系統根目錄)存在一個(gè).htaccess文件,那么AllowOverride設定的是,該文件里面的
//設置是否能夠覆蓋<Directory>這部分的設置,或該文件里面的設置可以覆蓋的是<Directory>這部分的哪些設置。none表示不
//允許進(jìn)行覆蓋。
//Require:設定哪些用戶(hù)可以訪(fǎng)問(wèn)該目錄(這里是系統根目錄)。all denied表示不允許訪(fǎng)問(wèn)該目錄。
DocumentRoot "/var/www/html"
//設定網(wǎng)頁(yè)存放目錄。比如說(shuō),訪(fǎng)問(wèn)http://host/index.html實(shí)際上就是訪(fǎng)問(wèn)這個(gè)host的/var/www/html/index.html這個(gè)文檔。
<Directory "/var/www">
AllowOverride None
Require all granted //all granted表示可無(wú)條件訪(fǎng)問(wèn)該目錄。
</Directory>
<Directory"/var/www/html">
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
//Options:用于設定在該目錄中哪些特性可用。FollowSymLinks,讓該目錄下的符號鏈接可以生效。默認這里還有個(gè)Indexes選
//項,建議拿掉。它的作用是,當瀏覽器訪(fǎng)問(wèn)該目錄(而非該目錄下的某一個(gè)檔案)時(shí),如果該目錄下沒(méi)有默認網(wǎng)頁(yè)(如index.html),
//那么此時(shí)就會(huì )返回該目錄下的文件名列表。
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
//<IfModule 模塊>和</IfModule>:如果Apache有加載這里指定的模塊,那么Apache就會(huì )對它們之間的語(yǔ)句進(jìn)行處理。
//也可以使用<IfModule!模塊>和</IfModule>,那么就表示沒(méi)有加載指定的模塊時(shí)才進(jìn)行處理。
//這里的模塊可以是模塊ID(如rewrite_module),也可以是模塊文件名(如mod_rewrite.c)。
//DirectoryIndex:這就是設置默認網(wǎng)頁(yè)的,即當瀏覽器訪(fǎng)問(wèn)某一個(gè)目錄時(shí),會(huì )返回該目錄下的index.html文件(如果存在的話(huà))。
//也可以接多個(gè)檔名,如DirectoryIndexindex.html index.htm index.cgi index.pl,這樣就會(huì )返回找到的第一個(gè)文件。
<Files ".ht*">
Require all denied
</Files>
//<Files 文件名>和</Files>:對指定文件名的文件應用這里指定的語(yǔ)句。
//這里的語(yǔ)句的意思是:任意目錄下,文件名符合.ht*的文件都會(huì )被禁止訪(fǎng)問(wèn)。
ErrorLog "logs/error_log" //錯誤日志所在文檔為/etc/httpd/logs/error_log
LogLevel warn //設置日志記錄級別
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b\"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b\"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" combined //客戶(hù)端訪(fǎng)問(wèn)服務(wù)器的日志會(huì )記在/etc/httpd/logs/access_log
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
//ScriptAlias會(huì )將URL路徑映射到指定目錄,并且讓該目錄具有CGI腳本執行權限(因此CGI腳本都可放置在該目錄下)。
//以這里的設定舉個(gè)例子,假如在瀏覽器中輸入http://example.com/cgi-bin/foo,此時(shí)就會(huì )執行/var/www/cgi-bin/foo這個(gè)
//CGI腳本。
<Directory"/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule mime_module> //這部分是關(guān)于MIME的
TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
AddDefaultCharset Off
//AddDefaultCharset會(huì )強制客戶(hù)端瀏覽器使用指定的字符集編碼方式。這可能會(huì )有問(wèn)題,所以要將它關(guān)閉。實(shí)際上,所使用的編
//碼方式在網(wǎng)頁(yè)里有聲明。
<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>
EnableSendfile on //允許Apache使用系統核心支持的sendfile來(lái)傳送文件給客戶(hù)端
IncludeOptional conf.d/*.conf //在/etc/httpd/conf.d目錄下以.conf結尾的配置文件也會(huì )被讀取
從上面也可以知道,默認情況下,網(wǎng)頁(yè)文檔可以放置在/var/www/html目錄下,CGI腳本可以放置在/var/www/cgi-bin目錄下;錯誤日志在/etc/httpd/logs/error_log,訪(fǎng)問(wèn)日志在/etc/httpd/logs/access_log。
設定好配置文件后,要測試配置文件語(yǔ)法有沒(méi)有問(wèn)題,可使用命令:
[root@localhost ~]#apachectl configtest
然后,重啟httpd服務(wù):
[root@localhost ~]# systemctl restart httpd
安裝PHP
使用以下命令安裝PHP軟件:
[root@localhost ~]# yum install php

從上圖可以看到,安裝的PHP版本為5.4版。
安裝完成后,PHP會(huì )生成配置文件/etc/httpd/conf.d/php.conf,因為該配置文件在/etc/httpd/conf.d目錄下,所以它會(huì )被Apache所讀取。PHP還會(huì )生成配置文件/etc/httpd/conf.modules.d/10-php.conf,該配置文件也會(huì )被Apache所讀取,它的設定讓Apache可以加載PHP模塊。不過(guò),PHP軟件本身的配置文件其實(shí)是/etc/php.ini。
下面介紹一下配置文件/etc/httpd/conf.d/php.conf:
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
//<FilesMatch 正則表達式>和</FilesMatch>:文件名與正則表達式相匹配的文件,將適用這里設定的語(yǔ)句。
//SetHandler:強制所有匹配的文件使用指定handler進(jìn)行處理。
AddType text/html .php //設定擴展名為.php的檔案的類(lèi)型為text/html
DirectoryIndex index.php //默認網(wǎng)頁(yè)檔名增加index.php
php_value session.save_handler"files"
php_value session.save_path "/var/lib/php/session"
下面介紹一下配置文件/etc/httpd/conf.modules.d/10-php.conf:
<IfModule prefork.c>
LoadModule php5_module modules/libphp5.so
</IfModule>
//如果Apache使用的多處理模塊(MPM)是prefork(默認),那么Apache就會(huì )加載LoadModule指定的模塊(PHP模塊)
最后,來(lái)看看配置文件/etc/php.ini。在該文件的開(kāi)頭處,有說(shuō)明針對生產(chǎn)環(huán)境和開(kāi)發(fā)環(huán)境,有一些設定值可以進(jìn)行修改,以提高PHP的效能。假設該web服務(wù)器是用于生產(chǎn)環(huán)境的,將下面的這些設定值改成這樣(或確認這些設定值是這樣的):
display_errors = Off //當發(fā)生錯誤時(shí),不將錯誤信息顯示出來(lái)(到瀏覽器上)
display_startup_errors = Off //不將PHP啟動(dòng)時(shí)發(fā)生的錯誤信息顯示出來(lái)(到瀏覽器上)
error_reporting = E_ALL &~E_DEPRECATED & ~E_STRICT //這一項設定PHP會(huì )告知的錯誤或信息類(lèi)型
html_errors = On //當PHP顯示或記錄錯誤信息時(shí),將該信息格式化成HTML格式
log_errors = On //這讓PHP可以將錯誤信息日志記錄到日志文件里
ignore_repeated_errors = On //忽略重復的錯誤信息
ignore_repeated_source = On //當忽略重復的錯誤信息時(shí)忽略信息源
post_max_size = 25M //PHP所允許的POST數據的最大值??砂凑招枰M(jìn)行調整
file_uploads = On //允許文件上傳,默認為On
upload_max_filesize = 20M //上傳文件所允許的最大值??砂凑招枰M(jìn)行調整
memory_limit = 128M //PHP可用的最大內存??砂凑招枰M(jìn)行調整
然后,重啟httpd服務(wù):
[root@localhost~]# systemctl restart httpd
為了測試Apache能不能正常調用PHP,在/var/www/html目錄下新建一個(gè)phpinfo.php文檔,內容如下所示:

其中的<?php ?>是PHP程序的語(yǔ)法,phpinfo ();則是PHP程序提供的一個(gè)函式庫,該函式庫可以顯示出你這個(gè)web服務(wù)器的相關(guān)信息。然后,使用瀏覽器來(lái)訪(fǎng)問(wèn)服務(wù)器的這個(gè)文件,看看頁(yè)面能不能正常打開(kāi)。如果正常的話(huà),應該可以看到下面這個(gè)頁(yè)面:

測試完后,因為這個(gè)頁(yè)面里面的信息還挺重要的,所以應該把phpinfo.php這個(gè)檔案刪除。
安裝MySQL
由于從RHEL 7開(kāi)始Red Hat公司推薦使用MariaDB替換MySQL,因此默認情況下,并沒(méi)有提供MySQL的安裝包,也就是沒(méi)辦法直接使用yum命令安裝MySQL軟件。為了要安裝MySQL,我選擇的是去官網(wǎng)http://dev.mysql.com/downloads/repo/yum/下載安裝包,不過(guò)在下載之前需要先注冊。因為使用的是CentOS 7系統,所以我下載的是mysql-community-release-el7-5.noarch.rpm這個(gè)文件。下載下來(lái)后,將它放在/root目錄下,然后使用命令:
[root@localhost ~]# yum localinstall mysql-community-release-el7-5.noarch.rpm
使用上面這個(gè)命令可以將MySQL Yum Repository添加到系統的軟件庫列表(repositorylist)。然后可以使用下面的命令檢查添加是否成功:
[root@localhost ~]# yum repolist enabled | grep mysql
然后,使用下面的命令安裝MySQL:
[root@localhost ~]# yum install mysql-community-server

如上圖所示,這個(gè)命令會(huì )安裝MySQL server,附帶的,它會(huì )安裝一些支撐軟件,包括MySQL client、共享客戶(hù)端庫(mysql-community-libs)等軟件。注意到,這里安裝的MySQL版本為5.6版。
安裝完成后,啟動(dòng)mysqld服務(wù)并將其設為開(kāi)機啟動(dòng):
[root@localhost ~]# systemctl start mysqld
[root@localhost ~]# systemctl enable mysqld
然后,檢查mysqld服務(wù)狀態(tài):
[root@localhost ~]# systemctl status mysqld
查看mysqld服務(wù)偵聽(tīng)端口:
[root@localhost ~]# netstat -atulpn | grep mysqld

如上圖所示,MySQL偵聽(tīng)tcp端口3306。但因為防火墻并未放通該端口,所以從其它設備上是無(wú)法訪(fǎng)問(wèn)本服務(wù)器的MySQL數據庫的。但因為這里的MySQL也僅是提供給本機的PHP使用的,所以也就不必放通tcp端口3306。
根據MySQL官方手冊,建議安裝完MySQL數據庫后使用下面的命令來(lái)增強數據庫的安全性:
[root@localhost ~]# mysql_secure_installation
該命令程序可以協(xié)助你設置數據庫root賬號的密碼,移除匿名用戶(hù)賬號,是否允許遠程登錄root賬號,移除自帶的test數據庫,最后還會(huì )問(wèn)你是否要重新加載特權表以讓修改生效。我是設置了數據庫root賬號密碼,其它的都選是(Y)。
如果不想使用上面的命令,那可以使用下面的命令來(lái)給root賬號設置密碼,回車(chē)后它會(huì )提示你輸入密碼的:
[root@localhost ~]# mysqladmin -u root password
如果要修改root賬號的密碼,可使用下面的命令,回車(chē)后,它會(huì )提示你輸入密碼,然后再設置新密碼:
[root@localhost ~]# mysqladmin -u root -p password
用root賬號進(jìn)入MySQL管理后臺,它會(huì )提示你輸入密碼:
[root@localhost ~]# mysql -u root –p
創(chuàng )建本地用戶(hù):
mysql> create user '用戶(hù)名'@'localhost' identified by '密碼';
創(chuàng )建新數據庫:
mysql> create database 數據庫名;
將指定數據庫的所有權限授給指定用戶(hù):
mysql> grant all privileges on 數據庫名.* to '用戶(hù)名'@'localhost';
刷新系統權限表:
mysql> flush privileges;
進(jìn)入mysql數據庫(系統自帶),并查詢(xún)是否存在指定用戶(hù)(如果有出現一堆東西,則表明存在):
mysql> use mysql;
mysql> select * from user where user = '用戶(hù)名';
如果要刪除本地用戶(hù),使用:
mysql> drop user '用戶(hù)名'@'localhost';
如果要刪除數據庫,使用:
mysql> drop database 數據庫名;
查看存在的數據庫:
mysql> show databases;
退出MySQL管理后臺:
mysql> exit
下面為實(shí)際所進(jìn)行的操作:
[root@localhost ~]# mysql -u root -p
Enter password:
mysql> create user'myuser'@'localhost' identified by '1234'; //新建本地用戶(hù)myuser,密碼為1234
mysql> create database mydb; //新建數據庫mydb
mysql> grant all privileges on mydb.*to myuser@localhost; //將數據庫mydb的所有權限授權給本地用戶(hù)myuser
mysql> flush privileges; //刷新系統權限表
mysql> use mysql; //進(jìn)入數據庫mysql(該數據庫為系統自帶)
mysql> select * from user where user ='myuser'; //查詢(xún)數據庫mysql中是否存在用戶(hù)myuser
mysql> show databases; //顯示所有已有的數據庫
mysql> exit
上面設定好后,就可以使用myuser這個(gè)賬號登錄MySQL了,并且可以發(fā)現該用戶(hù)擁有一個(gè)數據庫mydb。
關(guān)于MySQL,還需要知道:
/etc/my.cnf:這是MySQL的配置文件。不過(guò),因為我還玩不轉MySQL,所以先暫時(shí)不動(dòng)它。
/var/lib/mysql:這是數據庫實(shí)際存放目錄。毫無(wú)疑問(wèn),不能刪,并且,要注意,給予其所在分區足夠的容量。
/var/log/mysqld.log:這是MySQL的錯誤日志文件。
安裝php-mysql
php-mysql是一個(gè)用于讓PHP程序使用MySQL數據庫的模塊。要安裝該模塊,使用命令:
[root@localhost ~]# yum install php-mysql

然后,重啟httpd服務(wù):
[root@localhost ~]# systemctl restart httpd
為了測試PHP能否連接到MySQL數據庫,在/var/www/html目錄下新建一個(gè)文檔test.php。因為之前已經(jīng)在MySQL中新建了一個(gè)數據庫mydb,并給這個(gè)數據庫建了個(gè)用戶(hù)myuser,密碼是1234,所以test.php的內容是這樣的:
[root@www ~]# vim /var/www/html/test.php
<?php
$mydbhost = 'localhost'; //數據庫服務(wù)器
$mydbuser = 'myuser'; //用戶(hù)名
$mydbpwd = '1234'; //密碼
$mydbname = 'mydb'; //數據庫名稱(chēng)
$db =mysql_connect($mydbhost,$mydbuser,$mydbpwd) or die(‘Cannot find the database.’);
mysql_select_db($mydbname,$db) or die(‘Cannotconnect the database.’);
?>
Everything is OK!
上面這個(gè)測試頁(yè)面的內容純粹是我百度出來(lái)的,不過(guò)測試后的確有用。在瀏覽器中訪(fǎng)問(wèn)test.php這個(gè)頁(yè)面,如果測試失敗的話(huà)(可以試著(zhù)改一下用戶(hù)名或數據庫名稱(chēng)),那么就會(huì )顯示Cannot find the database或Cannot connect the database;如果測試成功的話(huà),就會(huì )顯示Everythingis OK!。如下所示:

不過(guò),雖然測試成功了,但查看Apache的錯誤日志文件,還是發(fā)現有報錯“mysql_connect():Headers and client library minor version mismatch”。百度了一下,說(shuō)是使用PHP5運行舊式PHP程序代碼出現的兼容性問(wèn)題。解決方法是,使用php-mysqlnd模塊來(lái)代替php-mysql模塊。即執行yum remove php-mysql和yum install php-mysqlnd,然后重啟httpd服務(wù)。然后再測試,發(fā)現的確沒(méi)有再報錯。不過(guò),因為我不是網(wǎng)頁(yè)開(kāi)發(fā)人員,所以暫時(shí)不確定使用php-mysqlnd這個(gè)模塊會(huì )不會(huì )有什么其它的問(wèn)題,所以就只是把這個(gè)問(wèn)題寫(xiě)在這了。
修改SELinux規則
有可能未來(lái)Apache需要進(jìn)行聯(lián)機工作,那么就先修改一下,讓SELinux規則放行:
[root@www ~]# setsebool -P httpd_can_network_connect=1
然后確認一下修改是否生效:
[root@www ~]# getsebool httpd_can_network_connect
安裝PHP緩存器XCache
其實(shí),到上面那里為止,基本的LAMP平臺已經(jīng)架設好了。但為了優(yōu)化LAMP平臺,所以還需要進(jìn)行一些工作。XCache是一款開(kāi)源的PHP緩存器/優(yōu)化器,它通過(guò)把編譯 PHP 后的數據緩沖到共享內存從而避免重復的編譯過(guò)程, 使客戶(hù)端訪(fǎng)問(wèn)時(shí)服務(wù)器能夠直接使用緩沖區已編譯的代碼從而提高速度,同時(shí)降低服務(wù)器負載。到我寫(xiě)這篇文章為止,XCache最新的版本為3.2.0。我選擇使用官網(wǎng)提供的源碼來(lái)安裝XCache。
由于我這臺服務(wù)器在安裝系統時(shí)是以最小化模式安裝的,所以要使用源碼,得先安裝編譯器:
[root@www ~]# yum install gcc
再安裝php-devel,它用于讓PHP可以支持擴展工具(如XCache):
[root@www ~]# yum install php-devel

然后,使用XCache官網(wǎng)提供的源碼來(lái)安裝XCache:
[root@www ~]# wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz
[root@www ~]# tar -zxfxcache-3.2.0.tar.gz
[root@www ~]# cd xcache-3.2.0
[root@www xcache-3.2.0]# phpize --clean
[root@www xcache-3.2.0]# phpize
[root@www xcache-3.2.0]# ./configure--enable-xcache
[root@www xcache-3.2.0]# make
[root@www xcache-3.2.0]# make install
[root@www xcache-3.2.0]# cat xcache.ini>> /etc/php.ini
//千萬(wàn)注意,有兩個(gè)>號,表示把xcache.ini的配置追加到php.ini后面。如果只有一個(gè)>號,會(huì )把php.ini原有的配置覆蓋掉。
//建議在操作前可以先備份/etc/php.ini文件。
然后,重啟httpd服務(wù):
[root@www ~]# systemctl restart httpd
這樣就安裝完了,那怎么確認XCache有沒(méi)有正常運行呢。在我這篇文章的前面部分,不是有使用一個(gè)phpinfo.php頁(yè)面嗎?就打開(kāi)那個(gè)頁(yè)面,搜索xcache,應該可以搜索到關(guān)于XCache的相關(guān)信息,可以看到XCache是enabled的:

另外,其實(shí)XCache有提供管理后臺。如果要使用XCache管理后臺,可以這樣做。首先,在/var/www/html目錄下新建一個(gè)檔案,假設為account.php,將這個(gè)檔案的內容該成如下所示:
[root@www ~]# vim/var/www/html/account.php
<?php
echo md5("1234"); //雙引號內可以填入你想要使用的密碼
?>
然后,從瀏覽器訪(fǎng)問(wèn)這個(gè)頁(yè)面,可以得到一串數字和字母的組合,我得到的是81dc9bdb52d04dc20036dbd8313ed055。然后,再修改/etc/php.ini中的這兩個(gè)設定的值:
xcache.admin.user ="admin" //雙引號內可以填入你想要使用的用戶(hù)名
xcache.admin.pass ="81dc9bdb52d04dc20036dbd8313ed055" //雙引號內填入剛剛得到的那串組合
再將XCache安裝包里面的htdocs整個(gè)目錄復制到/var/www/html目錄下:
[root@www ~]# cp -a/root/xcache-3.2.0/htdocs /var/www/html
修改目錄htdocs及其子目錄和檔案的所屬用戶(hù)和組,我選擇將其都改為root:
[root@www ~]# chown -R root:root/var/www/html/htdocs
使用restorecon命令來(lái)重置目錄htdocs及其子目錄和檔案的SELinux相關(guān)設定:
[root@www ~]# restorecon -Rv/var/www/html/htdocs
最后,使用瀏覽器訪(fǎng)問(wèn)地址http://服務(wù)器IP/htdocs/,然后輸入你設定的用戶(hù)名和密碼,就可以打開(kāi)XCache的管理后臺了:

補充信息:關(guān)于重啟httpd服務(wù)
有三種方法可以重啟httpd服務(wù):
1、 若要完全重啟httpd服務(wù):
[root@localhost ~]# systemctl restart httpd.service
該命令會(huì )中斷正在運行的httpd進(jìn)程。在安裝或移除一個(gè)動(dòng)態(tài)加載模塊(如PHP)后,需要使用此命令。
2、 讓httpd服務(wù)重新讀取它的配置文件:
[root@localhost ~]# systemctl reload httpd.service
該命令會(huì )讓httpd重新加載配置文件,同時(shí)也會(huì )中斷httpd進(jìn)程的運行。
3、 讓httpd服務(wù)重新讀取它的配置文件并且不影響httpd服務(wù)的運行:
[root@localhost ~]# apachectl graceful
該命令會(huì )讓httpd重新加載配置文件,并且不會(huì )中斷httpd服務(wù)。但現有的http請求將會(huì )繼續使用舊的配置。
聯(lián)系客服
微信登錄中...
請勿關(guān)閉此頁(yè)面
