澳门新萄京官方网站-www.8455.com-澳门新萄京赌场网址

澳门新萄京官方网站:搭建自身的LAMP,把编写翻

2019-12-12 作者:澳门新萄京官方网站   |   浏览(83)

把编译安装的httpd 实现服务脚本,通过service和chkconfig 进行管理

CentOS6编译LAMP基于FPM模式的应用wordpress

引言:其实我们可以直接使用yum安装LAMP(Linux Apache[httpd] Mysql PHP),比手动编译安装LAMP要简单的多,但在实际的生产环境中都会手动编译LAMP,这是为什么呢?是因为在centos6系统中yum安装的httpd和php版本过旧,默认不支持fcgi协议和fpm机制,所以只能手动编译安装新版本的httpd和php了,下面来说一下使用手动编译安装LAMP有哪些优点:

  • 方便扩展模块,如添加PHP的扩展模块、http扩展模块等,可根据实际需求进行配置;

  • 可以自由的选择安装较适合的版本,系统自带的httpd、mysql或者PHP的版本可能较低不能满足某些应用需求;

  • 可以以fpm的方式运行PHP,一般系统自带的PHP都是以httpd模块的形式运行的,若需要让PHP已fpm的方式运行,必须手动编译安装httpd和PHP;

  LAMP的搭建说简单也简单,说难也不容易,如果采用一键安装也是比较容易的,但想配置自己需要的版本等等也是比较麻烦。前段时间我分别在自己的电脑和阿里云上部署了Lamp环境,以下是步骤和常出现的问题的解决方法,都是编译安装,希望对初学者有用。

1 编译安装httpd

编译安装前的准备:

软件版本

ls /root/lamp

apr-1.6.2.tar.gz

apr-util-1.6.0.tar.gz

httpd-2.4.28.tar.bz2

mariadb-5.5.57-linux-x86_64.tar.gz

php-5.6.31.tar.xz

wordpress-4.8.1-zh_CN.tar.gz

xcache-3.2.0.tar.gz

注意:一定要关闭防火墙和selinux策略

iptables -F 关闭防火墙

setenforce 0 关闭selinux策略

 

所有的软件包都准备好了,然后就开始编译安装lamp搭建wordpress了

安装目录,我把他们指定在 /usr/local/ 下面 ,包括apache2,php,mysql文件

    把httpd编译安装在/app/httpd/目录下。

(1)准备好编译安装的环境

yum install openss-devel expat-devel pcre-devel bzip2-devel libxml2-devel libmcrypt-devel -y

yum groupinstall "development tools"

需要的文件 (提取码:a1b8)

2 在/etc/rc.d/init.d/目录下新建一个文件httpd

(2)编译安装httpd2.4

  1. cd /root/lamp

tar xvf apr-1.6.2.tar.gz

tar xvf apr-util-1.6.0.tar.gz

tar xvf httpd-2.4.28.tar.bz2

  1. cp -av apr-1.6.2 httpd-2.4.28/srclib/apr

cp -av apr-util-1.6.0 httpd-2.4.28/srclib/apr-util

澳门新萄京官方网站:搭建自身的LAMP,把编写翻译安装的httpd。cd httpd-2.4.28

  1. ./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork

4.make -j 4 && make install

  1. cp /etc/init.d/httpd /etc/init.d/httpd24 做成服务脚本,将来httpd服务的名称就是httpd24,如果你的机器上/etc/init.d/httpd这个脚本文件,可以从其他机器上拷贝一份,也可以yum安装httpd会生成这个文件,然后再复制改名,再卸载yum安装的httpd.

vim /etc/init.d/httpd24 改成你自己指定的安装httpd的路径

澳门新萄京官方网站 1

  1. chkconfig --add httpd24

service httpd 24 开启httpd服务

ss -ntl 查看80端口是否打开

  1. vim /etc/profile.d/lamp.sh 添加PATH变量

PATH=/app/httpd24/bin:$PATH

. /etc/profile.d/lamp.sh使添加的PATH变量生效

Httpd编译安装结束

先安装apache

这个文件的目的在于让service 命令可以管理编译安装的httpd服务。

(3)二进制安装mariadb-5.5.57

  1. useradd -r -d /app/mysqldb -m -s /sbin/nologin mysql

cd /root/lamp

tar xvf mariadb-5.5.57-linux-x86_64.tar.gz -C /usr/local/

  1. cd /usr/local

mv mariadb-5.5.57-linux-x86_64/ mysql (mariadb的数据库的目录已经生成,但是这个目录不符合要求,要求mariadb数据库必须放在mysql目录下,所以有两种方法解决,一是改名,将生成的mariadb数据库目录改为mysql,二是创建软链接,我们选择改名的方式)

 

  1. 准备mysql的配置文件

cd /usr/local/mysql/support-files/

mkdir /etc/mysql

cp my-huge.cnf /etc/mysql/my.cnf

vim /etc/mysql/my.cnf

澳门新萄京官方网站 2

  1. scripts/mysql_install_db --user=mysql --datadir=/app/mysqldb (必须在/usr/local/mysql目录下,不然会报错)

6. 做成服务脚本,将来mysql服务的名字就叫做mysqld

cp support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld

service mysqld start 启动服务失败,报错提示这是因为没有数据库的日志文件

7.创建日志文件

touch /var/log/mysqld.log

chown mysql /var/log/mysqld.log (因为写数据库日志是以mysql的身份写的,所以要把日志文件的所属人改为mysql,否则mysql用户就没有权限写日志)

service mysqld start (再次启动服务成功)

ss -ntl (查看3306端口是否打开)

8.添加PATH变量

vim /etc/profile.d/lamp.sh

PATH=/app/httpd24/bin:/usr/local/mysql/bin:$PATH

. /etc/profile.d/lamp.sh

  1. 运行mysql安全脚本

mysql_secure_installation

  1. mysql -uroot -pcentos

创建一个博客数据库,然后再创建一个管理该博客数据库的管理员,并授权

create database blogdb;

grant all on blogdb.* to 'wpadm'@'localhost' identified by 'centos';

数据库编译安装结束

安装步骤:

    文件内容如下:

(4)编译安装php-5.6.31

  1. cd /root/lamp

tar xvf php-5.6.31.tar.xz

  1. cd php-5.6.31

./configure

--prefix=/app/php

--with-mysql=/usr/local/mysql

--with-openssl

--with-mysqli=/usr/local/mysql/bin/mysql_config

--enable-mbstring

--with-freetype-dir

--with-jpeg-dir

--with-png-dir

--with-zlib

--with-libxml-dir=/usr

--enable-xml

--enable-sockets

--enable-fpm

--with-mcrypt

--with-config-file-path=/etc/php/

--with-config-file-scan-dir=/etc/php.d

--with-bz2

  1. make -j 4 && make install

cd php-5.6.31

cp php.ini-production /etc/php/php.ini

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

chmod x /etc/init.d/php-fpm

chkconfig --add php-fpm

cp /app/php/etc/php-fpm.conf.default /app/php/etc/php-fpm.conf

service php-fpm start

ss -ntl

php编译安装结束

1 tar -zxvf httpd-2.4.12.tar.gz
2 cd httpd-2.4.12
3 ./configure --prefix=/usr/local/apache2  --enable-so  --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre
4 make
5 make install
[root@CentOS68 ~]# cat /etc/rc.d/init.d/httpd

#!/bin/bash
#
# httpd        Start up the httpd server daemon
#
# chkconfig: 2345 99 01
# description: httpd is a protocol for web server.
# This service starts up the httpd server daemon.
#
# processname: httpd
case $1 in
start)
    /app/httpd/bin/apachectl start ;;
stop)
    /app/httpd/bin/apachectl stop ;;
status)
    /app/httpd/bin/apachectl status ;;
*)
    echo err
esac

(5).配置httpd配置文件支持php

vim /app/httpd24/conf/httpd.conf

去掉下面两行注释

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

 

修改下面行

DirectoryIndex index.php index.html

 

加上下面四行

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

ProxyRequests Off

ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1

 

测试

在/app/httpd24/htdocs下建一个index.php

vim index.php

<?php

phpinfo();

?>

然后再浏览器上访问192.168.10.186,成功

澳门新萄京官方网站 3

如果顺利,可以成功把apache安装在--prefix=指定的目录,但是可能出现编译错误,可以对照下面的方法解决

3 添加为开机启动

(6)布署wordpress

  1. cd /root/lamp

tar xvf wordpress-4.8.1-zh_CN.tar.gz

  1. rm -rf /app/httpd24/htdocs/*

cp wordpress/* /app/httpd24/htdocs/

  1. cd /app/httpd24/htdocs/

mv wp-config-sample.php wp-config.php

  1. vim wp-config.php

澳门新萄京官方网站 4

配置好之后,在浏览器上去访问

澳门新萄京官方网站 5

 

澳门新萄京官方网站 6

成功搭建博客

澳门新萄京官方网站 7

常出错误

[root@CentOS68 /app/httpd/bin]# chkconfig --add httpd
[root@CentOS68 /app/httpd/bin]# chkconfig --list |grep httpd
httpd     0:off    1:off    2:on    3:on    4:on    5:on    6:off

(7)支持多个虚拟主机

1.再创建一个数据库,用来存放另一个博客,接着创建一个管理该数据库的管理员并授权

mysql -uroot -pcentos

create database blogdb1;

grant all on blogdb1.* to 'wpadm1'@'localhost' identified by 'centos';

  1. mkdir /app/httpd24/htdocs2

cp /app/httpd24/htdocs/* /app/httpd24/htdocs2

vim wp-config.php

澳门新萄京官方网站 8

  1. vim /app/httpd24/conf/httpd.conf

Include conf/extra/httpd-vhosts.conf 取消注释

 

删除下面两行

ProxyRequests Off

ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1

4.在httpd服务子置文件配置虚拟主机

vim /app/httpd24/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>

ServerAdmin webmaster@dummy-host.example.com

DocumentRoot "/app/httpd24/htdocs"

ServerName www.a.com

ErrorLog "logs/a.com-error_log"

CustomLog "logs/a.com-access_log" common

ProxyRequests Off

ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1

<directory /app/httpd24/htdocs>

require all granted

</directory>

</VirtualHost>

 

<VirtualHost *:80>

ServerAdmin webmaster@dummy-host.example.com

DocumentRoot "/app/httpd24/htdocs1"

ServerName www.b.com

ErrorLog "logs/b.com-error_log"

CustomLog "logs/b.com-access_log" common

ProxyRequests Off

ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs1/$1

<directory /app/httpd24/htdocs1>

require all granted

</directory>

</VirtualHost>

做完之后,再重启一下httpd服务

service httpd24 restart

5.windos系统上配置解析域名www.a.com,www.b.com

C:WindowsSystem32driversetchosts

澳门新萄京官方网站 9

6.浏览器上访问www.a.com,www.b.com

访问www.com

澳门新萄京官方网站 10

访问www.b.com

澳门新萄京官方网站 11

 

澳门新萄京官方网站 12

好了,看到这相信大家都知道如何搭建WordPress了,我们下期再见。

一、在进行第三步的时候回出现缺少环境的错误,可以按照一下步骤解决

可以看到已经添加成功

如果出现:

4 通过service 命令启动服务

1 checking for APR... no
2 configure: error: APR not found .  Please read the documentation
[root@CentOS68 ~]# service httpd start
httpd: Could not reliably determine the server's fully qualified domain name, using CentOS68.localhost for ServerName

解决办法:

可以看到会报错,但是服务已经启动成功了,修改/app/httpd/conf/httpd.conf这个文件,把98行前面的#去掉即可

1:下载需要的安装包(上面的云盘中已经提供,可以下载):

98 #ServerName www.example.com:80

1 wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz  
2 wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz  
3 wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.zip

现在可以通过service命令管理手动安装的httpd 服务了

2.编译安装(先移除旧的文件):

1 yum remove apr-util-devel apr apr-util-mysql apr-docs apr-devel apr-util apr-util-docs 

具体步骤如下:
  解决apr not found问题

1 # tar -zxf apr-1.4.5.tar.gz  
2 # cd  apr-1.4.5  
3 # ./configure --prefix=/usr/local/apr  
4 # make && make install  

  解决APR-util not found

1 # tar -zxf apr-util-1.3.12.tar.gz  
2 # cd apr-util-1.3.12  
3 # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
4 # make && make install 

  解决pcre

1 #unzip -o pcre-8.10.zip  
2 #cd pcre-8.10  
3 #./configure --prefix=/usr/local/pcre  
4 #make && make install 

4.最后编译Apache时加上:

1 --with-apr=/usr/local/apr 
2 --with-apr-util=/usr/local/apr-util/ 
3 --with-pcre=/usr/local/pcre

二、如果在编译的时候出现:configure: error: mod_so can not be built as a shared DSO

解决办法:删除编译选项:--enable-modules=so

三、启动apache报错:

linux启动apache命令报错(98)Address already in use: make_sock: could not bind to address [::]:80

解决办法:

1 查看到对应哪个应用占用了80端口:
2 netstat -tulnp | grep ':80 '
3  找到对应的PID杀掉。
4 kill 'PID'

四、出现:httpd: Could not reliably determine the server's fully qualified domain name

解决方案:进入apache的安装目录:
Windows : D:Program FilesApache Software FoundationApache2.2conf
linux : /usr/local/apache/conf
用记事本打开httpd.conf
将里面的#ServerName localhost:80注释去掉即可。
再执行httpd
然后可以通过浏览器访问 works!”,即表示apache已安装并启动成功。

 

常用修改:

Apache自动启动
1、将apachectl文件拷贝到/etc/rc.d/init.d 中,然后在/etc/rc.d/rc5.d/下加入链接即可。

1 cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
2 ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc5.d/S85httpd

此时Apache就可以自动启动。
2、 运行chkconfig --list,发现没有linux服务列表中httpd,通过chkconfig --add httpd来添加,但是提示:httpd服务不支持 chkconfig。

需要编辑/etc/rc.d/init.d/httpd,在第一行添加以下注释信息:

1 chkconfig: 345 85 15
2 description: Activates/Deactivates Apache Web Server

第一行3个数字参数意义分别为:哪些Linux级别需要启动httpd(3,4,5);启动序号(85);关闭序号(15)。
保存后执行:chkconfig --add httpd,成功添加。
在rc3.d、rc4.d、rc5.d路径中会出现S85httpd的链接文件,其他运行级别路径中会出现K61httpd的链接文件。
3、运行chkconfig --list httpd 就会出现

可以通过:service httpd start 启动

编译期间可能出现其他的缺少环境问题,可以一步一步查查,都有对应的解决办法。

 

安装mysql(建议先安装mysql在安装php,php要指定mysql的安装路径)

1:检查是否已安装

1 rpm -qa|grep -i mysql

载时使用了--nodeps选项,忽略了依赖关系

1 rpm -e mysql-5.4.61-4.el6.x86_64 --nodeps

2:添加mysql组和mysql用户,用于设置mysql安装目录文件所有者和所属组。

1 groupadd mysql
2 useradd -r -g mysql mysql

将二进制文件解压到指定的安装目录,我们这里指定为/usr/local

1 cd/usr/local/
2 tar zxvf /your_path/mysql-5.5.29-linux2.6-x86_64.tar.gz

3:进入mysql文件夹,也就是mysql所在的目录,并更改所属的组和用户。

1 cd mysql
2 
3 chown -R mysql .
4 
5 chgrp -R mysql .

4:执行mysql_install_db脚本,对mysql中的data目录进行初始化并创建一些系统表格。注意 mysql服务进程mysqld运行时会访问data目录,所以必须由启动mysqld进程的用户(就是我们之前设置的mysql用户)执行这个脚本,或 者用root执行,但是加上参数--user=mysql。

1 scripts/mysql_install_db --user=mysql

5:将mysql/目录下除了data/目录的所有文件,改回root用户所有,mysql用户只需作为mysql/data/目录下所有文件的所有者。

1 chown -R root .
2 
3 chown -R mysql data

6:  复制配置文件

1 cp support-files/my-medium.cnf /etc/my.cnf
2 首先需要将scripts/mysql.server服务脚本复制到/etc/init.d/,并重命名为mysqld。
3 cp support-files/mysql.server /etc/init.d/mysqld

7:通过chkconfig命令将mysqld服务加入到自启动服务项中。

1 chkconfig --add mysqld
2 chkconfig --list mysqld

检查是否启动:netstat -anp|grep mysqld

启动:service mysqld start

 

安装php

tar -zxvf php-5.0.2.tar.gz
cd php-5.0.2
./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --disable-tokenizer --with-curl --with-mcrypt --enable-mbstring  --with-iconv --with-gd  --with-gettext --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --disable-tokenizer
make
make install

 

编译时已经制定了常用的扩展,如果还需要其他扩展,可以按照下面的方式来添加

进入源码安装包:ext文件

可用扩展都在那

执行步骤:

1 //添加扩展
2  /usr/local/php/bin/phpize
3 ./configure --with-php-config=/usr/local/php/bin/php-config --with-curl=DIR(默认路径时无需指定)
4 make&&make install
5 会在/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525生成curl.so文件

与apache整合:

1 php与apache整合
2 emacs /usr/local/apache2/conf/httpd.conf   找到DirectoryIndex改为如下:
3 DirectoryIndex index.html index.php index.htm index.html.var
4 找到
5 AddType application/x-compress .Z
6 AddType application/x-gzip .gz .tgz
7 在它后面添加
8 AddType application/x-httpd-php .php
9 /usr/local/apache2/bin/apachectl restart

本文由澳门新萄京官方网站发布于澳门新萄京官方网站,转载请注明出处:澳门新萄京官方网站:搭建自身的LAMP,把编写翻

关键词: