目錄
2.PHP安装与使用VLD查看opcode代码【PHP安装第三方扩展的方法】
首頁 php教程 php手册 Linux(centOS)手动安装Apache+MySQL+PHP+Memcached+Nginx

Linux(centOS)手动安装Apache+MySQL+PHP+Memcached+Nginx

Apr 18, 2017 am 09:47 AM
centos linux 手動安裝

=================== 第一步:Apache安装(已更新到2.2.x) =================== 

第一步:Apache安装(已更新到2.2.x)

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

下载 Apache去官网 自己找新的

 国内有很多镜像点例如"人人"和"163"

注意要找httpd,因为apache下有很多项目,其中httpd就是web服务器

-------------------------------------------------
#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

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

YUM方式安装的,这样卸载:

#yum remove httpd
登入後複製

否则要用

#rpm -qa|grep httpd
登入後複製

一个个删除

# rpm -e  ......
登入後複製

安装有错误 模块没有加上会报如下错误,此时打开注释模块即可 尤其那个mod_slotmem_shm的模块必须打开

[Sun May 06 19:02:44.486163 2012] [proxy_balancer:emerg] [pid 9141:tid 140629202720512] AH01177: Failed to lookup provider 'shm' for 'slotmem': is mod_slotmem_shm loaded??
[Sun May 06 19:02:44.486651 2012] [:emerg] [pid 9141:tid 140629202720512] AH00020: Configuration Failed, exiting
登入後複製

打开注释的模块

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

第二步 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个模板文件,是根据不同机器的内存定制的。

mysql-5.1.57版本执行如下copy

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

mysql-5.1.67以上版本 执行如下copy

#cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf

利用以上脚本安装,安装结束后发现启动的时候提示

[root@kspc mysql-5.1.31]# /etc/init.d/mysqld start
Starting MySQL.Manager of pid-file quit without updating fi[FAILED]
登入後複製

脚本中有个建立
/usr/local/mysql/bin/mysql_install_db --user=mysql --------------------初始数据库并设置用户

重新运行一次

然后重启mysql ,一切OK

[root@kspc mysql-5.1.31]# /etc/init.d/mysqld restart
MySQL manager or server PID file could not be found!       [FAILED]
Starting MySQL.                      [  OK  ]
登入後複製

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

第三步 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
登入後複製
登入後複製

如果提示未知的配置项--with-mysql-dir=/usr/local/mysql则使用如下

#./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

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

安装中可能存在这样的警告信息:

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

##configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.    wget 
http://sourceforge.net/projects/re2c/files/re2c/0.13.5/re2c-0.13.5.tar.gz/download    
tar -zxvf re2c-0.13.5.tar.gz    cd re2c-0.13.5    ./configure && make && make install
登入後複製

如果提示:

Try adding --with-zlib-dir=
#./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配置文件

注意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安装

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

说明必须先安装libevent

#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
#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
登入後複製

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

PHP 中操作memcache有两个扩展,一个叫memcache,一个叫memcached都可以在php的reference中找到,现在

网上比较推荐使用基于libmemcahced 库的memcached扩展。支持memcache提供的CAS操作,稳定性和效率也更好。

(安装过memcached.so的话就不必安装memcache.so了二者根据实际情况选用其一,这里要说明的是memcache的功能memcached都有,但memcached的部分功能memcache没有,所以建议安装memcached.so)

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

安装memcache的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
登入後複製
#./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
登入後複製

安装memcached的php扩展memcached

安装前需要的准备:

先安装libmemcached,已安装可跳过

直接configure提示找不到memcached二进制文件,已经安装过了,好吧,制定一下。

安装方法如下:

wget launchpad.net/libmemcached/1.0/0.42/+download/libmemcached-0.42.tar.gz

wget http://pecl.php.net/get/memcached-1.0.2.tgz
登入後複製

首先安装libmemcached库

tar zxvf libmemcached-0.42.tar.gz
cd libmemcached-0.42
./configure
make && make install
登入後複製

安装php memcached扩展

tar zxvf memcached-1.0.2.tar.gz
cd memcached-1.0.2
/usr/local/php/bin/phpize
./configure  --with-php-config=/usr/local/php/bin/php-config
make && make install
vi /usr/local/php/lib/php.ini
加上extension=memcached.so重起一下服务就可以了。
登入後複製

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

重启

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

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

测试memcache

[php] view
 plaincopy
$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;
登入後複製




--------------
[php] view
 plaincopy
class MemCache {  
    var $mem = null;  
      
    private static $isLibLoad = false;  
    //put your code here  
    public 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();  
    }  
}
登入後複製





调用

[php] view
 plaincopy
$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;
登入後複製




测试memcached ,运行 memcached 守护程序
运行 memcached 守护程序很简单,只需一个命令行即可,不需要修改任何配置文件(也没有配置文件给你修改 ):
/usr/local/memcached/bin/memcached -d -m 256 -u root-l 127.0.0.1 -p 11211-c 256 -P /tmp/memcached.pid

httpd参数解释:
-d 以守护程序(daemon)方式运行 memcached;
-m 设置 memcached 可以使用的内存大小,单位为 M;
-l 设置监听的 IP 地址,如果是本机的话,通常可以不设置此参数;
-p 设置监听的端口,默认为 11211,所以也可以不设置此参数,(此处测试期间故而使用11212端口);
-u 指定用户,如果当前为 root 的话,需要使用此参数指定用户。

-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,

-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,

如果要结束Memcache进程,执行:

# kill `cat /tmp/memcached.pid`

也可以启动多个守护进程,不过端口不能重复。


当然,还有其它参数可以用,man memcached 一下就可以看到了。

$memcache = new Memcached();  
$memcahce->connect('127.0.0.1', 12121);  
$memcache->set('Key', 'Value');  
$memcache->get('Key');
登入後複製

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

Nginx安装

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

#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=
登入後複製

解决办法:

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进程发送系统信号

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1655
14
CakePHP 教程
1413
52
Laravel 教程
1306
25
PHP教程
1252
29
C# 教程
1226
24
Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

Linux的主要目的是什麼? Linux的主要目的是什麼? Apr 16, 2025 am 12:19 AM

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

vscode上一步下一步快捷鍵 vscode上一步下一步快捷鍵 Apr 15, 2025 pm 10:51 PM

VS Code 一步/下一步快捷鍵的使用方法:一步(向後):Windows/Linux:Ctrl ←;macOS:Cmd ←下一步(向前):Windows/Linux:Ctrl →;macOS:Cmd →

sublime寫好代碼後如何運行 sublime寫好代碼後如何運行 Apr 16, 2025 am 08:51 AM

在 Sublime 中運行代碼的方法有六種:通過熱鍵、菜單、構建系統、命令行、設置默認構建系統和自定義構建命令,並可通過右鍵單擊項目/文件運行單個文件/項目,構建系統可用性取決於 Sublime Text 的安裝情況。

laravel安裝代碼 laravel安裝代碼 Apr 18, 2025 pm 12:30 PM

要安裝 Laravel,需依序進行以下步驟:安裝 Composer(適用於 macOS/Linux 和 Windows)安裝 Laravel 安裝器創建新項目啟動服務訪問應用程序(網址:http://127.0.0.1:8000)設置數據庫連接(如果需要)

VSCode怎麼用 VSCode怎麼用 Apr 15, 2025 pm 11:21 PM

Visual Studio Code (VSCode) 是一款跨平台、開源且免費的代碼編輯器,由微軟開發。它以輕量、可擴展性和對眾多編程語言的支持而著稱。要安裝 VSCode,請訪問官方網站下載並運行安裝程序。使用 VSCode 時,可以創建新項目、編輯代碼、調試代碼、導航項目、擴展 VSCode 和管理設置。 VSCode 適用於 Windows、macOS 和 Linux,支持多種編程語言,並通過 Marketplace 提供各種擴展。它的優勢包括輕量、可擴展性、廣泛的語言支持、豐富的功能和版

See all articles