日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Linux(centOS)手动安装Apache+MySQL+PHP+Memcached+Nginx原创无错版

發布時間:2023/11/27 生活经验 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux(centOS)手动安装Apache+MySQL+PHP+Memcached+Nginx原创无错版 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最后更新時間:2012.3.21

===================

第一步:Apache安裝(已更新到2.2.22)

===================

?

下載 去 http://www.apache.org?自己找新的

http://httpd.apache.org/

?國內有很多鏡像點例如"人人"和"163"

http://labs.renren.com/

注意要找httpd,因為apache下有很多項目,其中httpd就是web服務器


http://labs.renren.com/

英文文檔:http://httpd.apache.org/docs/2.2/

中文文檔:?http://www.php100.com/manual/apache2/index.html

-------------------------------------------------

老版本地址:

http://archive.apache.org/dist/httpd/

?

#wget http://labs.renren.com/apache-mirror/httpd/httpd-2.2.22.tar.gz

#tar zxvf httpd-2.2.22.tar.gz

#cd ./httpd-2.2.22

#./configure --prefix=/usr/local/apache2/ --enable-proxy --enable-ssl --enable-cgi --enable-rewrite --enable-so --enable-module=so

#make

#make install

說明:如果make不成功,那么是configure不成,例如你缺少ssl組件,可以去掉

--enable-ssl
-----------------------------------------------

如果出現“No recognized SSL/TLS toolkit detected”錯誤

#yum -y install openssl openssl-devel

------------------------

如果Make: command not found

看看是不是make沒裝

# rpm -qa|grep make???

如果沒有信息那么說明make沒裝

#yum install make?即可
-------------------

手動啟動

# /usr/local/apache2/bin/apachectl start

?

重啟

# /usr/local/apache2/bin/apachectl restart

?如果報錯說:

Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName

需要修改/usr/local/apache2/conf/httpd.conf在

#serverName www.example.com:80

這個位置修改為:

serverName localhost:80

--------------------------

YUM自動安裝的啟動
#service httpd restart

輸入這個會提示出錯 httpd未被被識別的服務

這個請見本博客另一篇介紹

-------------------------

這就說明安裝成功了。

自己在瀏覽器輸入:http://localhost/

?

?

這樣就說明成功了!

------------------------------------------

防火墻配置

注意如果你希望在本地機器例如xp訪問虛擬機的網頁,如果是centos6需要修改防火墻啟動80端口

/etc/sysconfig

?

[root@centos6 ~]# vim /etc/sysconfig/iptables

添加下面一行,打開防火墻80端口:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

重啟防火墻

#/etc/init.d/iptables restart

查看CentOS防火墻信息:/etc/init.d/iptables status

關閉CentOS防火墻服務:/etc/init.d/iptables stop

------------------------

開機加入自動啟動服務

編輯rc.local文件
#vi /etc/rc.d/rc.local

加入如下啟動命令
/usr/sbin/apachectl start
/etc/rc.d/init.d/mysqld start
/etc/rc.d/init.d/smb start
/usr/local/subversion/bin/svnserve -d

注意:我的這個路徑是yum安裝這些服務得到的路徑,填寫時要根據自己的安裝路徑,找不到可以借助whereis命令,主要是找到apachectl 、mysqld 、smb 這三個啟動文件。

------------------------------------------

增加權限和文件格式轉換(不然apache會報沒權限執行文件)
#chmod +x   文件
#dos2unix   文件

?----------------------------------------

ab測試

#ab -n 1000 ?-c ?10?http://localhost/

------------------------------------------

卸載apache

如果是源碼安裝

#rm ? -rf ? 你的apache安裝路徑

同樣作用于其他

========================

httpd啟用虛擬主機
#Include conf/extra/httpd-vhosts.conf

httpd-vhosts.conf
<VirtualHost *:80>
? ? ServerAdmin webmaster@dummy-host.example.com
? ? DocumentRoot "/www/"
<Directory />
#拒絕所有請求
# ? ?Deny from all
#是否顯示列表
# ? ?Options Indexes FollowSymLinks
#是否啟用rewrite
# ? ?AllowOverride all

========================

YUM方式安裝的,這樣卸載

#yum remove httpd

否則要用

#rpm -qa|grep httpd

一個個刪除
# rpm -e? ......

?

===================

第二步 Mysql安裝

===================

第一種方法:使用yum自動安裝

#yum -y install mysql-server

----------------------------------------

第二種:下載源碼編譯安裝

#wget http://mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-5.1/mysql-5.1.57.tar.gz

#tar zxvf mysql-5.1.57.tar.gz

#cd mysql-5.1.57

#./configure --prefix=/usr/local/mysql --with-mysqld-user=mysql --with-charset=gbk --bindir=/usr/local/bin --sbindir=/usr/local/sbin --with-plugins=innobase --with-partition

#make

#make install

#cd /usr/local/mysql

#mysql_install_db

#chown -R mysql:mysql *

#cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysql

#/etc/rc.d/mysql start (加入到/etc/rc.local 以便系統重啟后自動啟動mysql)

修改/etc/rc.local

?

說明:請修改mysql配置文件my.cnf中wait_timeout = 600(有些程序執行時間較長,mysql超時時間如果太短的話,容易發生mysql server has go away的錯誤)

注意事項:

安裝完成后,需要拷貝一份my.cnf到ect目錄下,使用support-files目錄中的一個作為模板。在這個目錄中有4個模板文件,是根據不同機器的內存定制的。

#cp support-files/my-medium.cnf /etc/my.cnf

?

===================

第三步 PHP安裝(已更新到5.4.8版)

===================

去www.php.net找最新的版本

5.4安裝

#wget? http://cn2.php.net/get/php-5.4.8.tar.gz/from/this/mirror

#tar zxvf? php-5.4.8.tar.gz

#cd php-5.4.8

?

#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql-dir=/usr/local/mysql

如果失敗 可能原因有各種各樣

-------------------------------

如果提示:Cannot find MySQL header files under /date/mysql.


這個是缺少了 mysql-devel 安裝包,用
yum -y install mysql-devel 即可解決!

#yum -y install mysql-devel

-------------------------------

如果提示:xml2-config not found. Please check your libxml2 installation.

需要安裝libxml2

#yum install libxml2-devel

-------------------------------

如果提示:Try adding --with-zlib-dir=<DIR>試著添加一下 zlib的路徑,如下

#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql-dir=/usr/local/mysql --with-zlib-dir=/usr/local/zlib

------------------------------

完全成功才可以編譯安裝

#make

#make install

------------------------------------------------------

安裝失敗如果提示:Cannot load /usr/local/apache2/modules/libphp5.so into server:

原因:是Linux有一個SELinux保護模式引起的。

?解決辦法:
1關閉SELINUX的方法:
vi /etc/selinux/config 將SELINUX=enforcing 改成SELINUX=disabled 需要重啟
這個方法可能會對服務器帶來風險。


2不關閉SELINUX的方法:
# setenforce 0
# chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache/modules/libphp5.so
# service httpd restart
# setenforce 1

--------------------------------------

復制php.ini配置文件

參考此文http://blog.csdn.net/21aspnet/article/details/7001344

注意php新版本此文件名有變更

#cp php.ini-production /usr/local/php/lib/php.ini

------------------------------

修改apache的配置文件httpd.conf

增加

AddType application/x-httpd-php .php

?

修改www的默認文件地址DocumentRoot

注意還要修改Directoty的路徑和上面的一樣

?

重啟httpd

?

測試php文件

phpinfo()

---------------------------------

?執行php文件

#/usr/local/php/bin/php ? ?xx.php

?

加速器:

PHP安裝eAccelerator
?

PHP安裝擴展的兩種類型

?

1.PHP安裝擴展mcrypt以及相關依賴項 【PHP安裝PECL擴展的方法】

2.PHP安裝與使用VLD查看opcode代碼【PHP安裝第三方擴展的方法】

?

===================

第四步 Memcached安裝

===================

可以參考http://timke.blog.163.com/blog/static/1015873062009111094715315/

說明必須先安裝libevent

官網? ?http://libevent.org/? 找最新的版本

#wget https://github.com/downloads/libevent/libevent/libevent-2.0.16-stable.tar.gz

#tar xzvf libevent-2.0.16-stable.tar.gz

#cd libevent-2.0.16-stable

#./configure --prefix=/usr

#make

#make install

--------------------------------------------?

第二步 安裝memcached

# wget http://memcached.googlecode.com/files/memcached-1.4.9.tar.gz

#tar xzvf memcached-1.4.9.tar.gz

#cd memcached-1.4.9

#./configure --prefix=/usr/local/memcached --with-libevent=/usr

注意這里選擇libevent的位置即可? 例如你的是在–with-libevent=/usr/local/libevent/

#make

#make install

啟動

#/usr/local/memcached/bin/memcached -d -m 100 -uroot -l 0.0.0.0 -p 11211 -c 512 -P /usr/local/memcached/memcached.pid

查看詳情

#ps aux|grep mem???

輸出pid

#cat /usr/local/memcached/memcached.pid

?

查看內存使用

#top -n 1 |grep Mem

-------------------------------------------

第三步? 安裝memcached的php擴展memcache

#wget http://pecl.php.net/get/memcache-2.2.6.tgz

#tar vxzf memcache-2.2.6.tgz

#cd memcache-2.2.6

#/usr/local/php/bin/phpize

此處出錯可以參考 http://blog.csdn.net/21aspnet/article/details/7001182

#./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir

或者

#./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir=/usr

#make

#make install?

#vi /usr/local/php/lib/php.ini

php.ini添加

extension=memcache.so

<完>

-------------------

重啟

# /usr/local/apache2/bin/apachectl restart

---------------

測試

$memcache = new Memcache; //創建一個memcache對象   
$memcache->connect('localhost', 11211) or die ("Could not connect"); //連接Memcached服務器   
$memcache->set('key', 'test'); //設置一個變量到內存中,名稱是key 值是test   
$get_value = $memcache->get('key'); //從內存中取出key的值   
echo $get_value;  


?

--------------

或者手動指定

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"

class MemCache {var $mem = null;private static $isLibLoad = false;//put your code herepublic function Com_MemCache(){if(!self::$isLibLoad){dl("memcache.so");self::$isLibLoad = true;}$this->mem = new Memcache();$this->mem->connect("127.0.0.1", 11211);}public function set($key,$value,$flag = null,$expire = 5000){$this->mem->set($key, $value, $flag, $expire);}public function get($key){return $this->mem->get($key);}function __destruct(){$this->mem->close();}
}

調用

$cache = new MemCache();$mm = $cache ->get("A");if($mm==null){$cache->set('A', date('Y-m-j').' '.date('G:i:s'),null,15);}
echo $mm;



?

因為MemCache.php有 dl("memcache.so");所以在php.ini中不需要extension=memcache.so了,但是前一句extension_dir是要的。

===================

????????? Nginx安裝

===================

官網:http://wiki.nginx.org/Install

下載

#wget http://nginx.org/download/nginx-1.2.6.tar.gz

#./configure --prefix=/usr/local/nginx

#make

#make install

?

安裝Nginx時報錯

./configure: error: the HTTP rewrite module requires the PCRE library.

安裝pcre-devel解決問題
yum -y install pcre-devel

?

錯誤提示:./configure: error: the HTTP cache module requires md5 functions
from OpenSSL library. You can either disable the module by using
--without-http-cache option, or install the OpenSSL library into the system,
or build the OpenSSL library statically from the source with nginx by using
--with-http_ssl_module --with-openssl=<path> options.

解決辦法:

yum -y install openssl openssl-devel

?

總結:

yum -y install pcre-devel openssl openssl-devel

./configure --prefix=/usr/local/nginx

make

make install

?

啟動nginx

#/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

?

安裝成功的頁面

停止操作
停止操作是通過向nginx進程發送信號(什么是信號請參閱linux文 章)來進行的
步驟1:查詢nginx主進程號
ps -ef | grep nginx
在進程列表里 面找master進程,它的編號就是主進程號了。
步驟2:發送信號
從容停止Nginx:
kill -QUIT 主進程號
快速停止Nginx:
kill -TERM 主進程號
強制停止Nginx:
pkill -9 nginx

另外, 若在nginx.conf配置了pid文件存放路徑則該文件存放的就是Nginx主進程號,如果沒指定則放在nginx的logs目錄下。有了pid文 件,我們就不用先查詢Nginx的主進程號,而直接向Nginx發送信號了,命令如下:
kill -信號類型 '/usr/nginx/logs/nginx.pid'

平滑重啟
如果更改了配置就要重啟Nginx,要先關閉Nginx再打開?不是的,可以向Nginx 發送信號,平滑重啟。
平滑重啟命令:
kill -HUP 住進稱號或進程號文件路徑

或者使用

?

/usr/nginx/sbin/nginx -s reload

?

?

注意,修改了配置文件后最好先檢查一下修改過的配置文件是否正 確,以免重啟后Nginx出現錯誤影響服務器穩定運行。判斷Nginx配置是否正確命令如下:
nginx -t -c /usr/nginx/conf/nginx.conf

或者

/usr/nginx/sbin/nginx -t

?


平滑升級
如果服務器正在運行的Nginx要進行升級、添加或刪除模塊時,我們需 要停掉服務器并做相應修改,這樣服務器就要在一段時間內停止服務,Nginx可以在不停機的情況下進行各種升級動作而不影響服務器運行。
步驟1:
如 果升級Nginx程序,先用新程序替換舊程序文件,編譯安裝的話新程序直接編譯到Nginx安裝目錄中。
步 驟2:執行命令
kill -USR2 舊版程序的主進程號或進程文件名
此時舊的Nginx主進程將會把自己的進程文件改名為.oldbin,然后執行新版 Nginx。新舊Nginx會同市運行,共同處理請求。
這時要逐步停止舊版 Nginx,輸入命令:
kill -WINCH 舊版主進程號
慢慢舊的工作進程就都會隨著任務執行完畢而退出,新版的Nginx的工作進程會逐漸取代舊版 工作進程。

此 時,我們可以決定使用新版還是恢復到舊版。
不重載配置啟動新/舊工作進程
kill -HUP 舊/新版主進程號
從容關閉舊/新進程
kill -QUIT 舊/新主進程號
如果此時報錯,提示還有進程沒有結束就用下面命令先關閉舊/新工作進程,再關閉主進程號:
kill -TERM 舊/新工作進程號

這樣下來,如果要恢復到舊版本,只需要上面的幾個步 驟都是操作新版主進程號,如果要用新版本就上面的幾個步驟都操作舊版主進程號就行了。

上面就是Nginx的一些基本的操作,希望以后Nginx能有更好的方法來處理這些操作, 最好是Nginx的命令而不是向Nginx進程發送系統信號。

總結

以上是生活随笔為你收集整理的Linux(centOS)手动安装Apache+MySQL+PHP+Memcached+Nginx原创无错版的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。