166.实战5.APACHE

发表于 linux 分类,标签:
一.编译依赖
1.编译apr的步骤:
cd /app
tar zxvf apr-1.6.3.tar.gz
cd apr-1.6.3
./configure --prefix=/usr/local/apr
make && make install
2.编译apr-util的步骤:
yum install expat expat-devel
cd /app
tar zxvf apr-util-1.6.1.tar.gz
cd apr-util-1.6.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
3.编译PCRE的步骤:
cd /app
ar zxvf pcre-8.41.tar.gz
cd pcre-8.41
./configure --prefix-/usr/local/pcre
make && make install
4.我们还需要安装 zlib 库
yum install zlib zlib-devel

二.编译Apache
yum -y install epel-release
yum -y install make gcc-c++ cmake bison-devel ncurses-devel libltool bison perl perl-devel perl perl-devel
#编译 httpd 源码
cd /app
tar zxvf httpd-2.4.29.tar.gz
cd httpd-2.4.29
cp -r /app/apr-1.6.3 srclib/apr
cp -r /app/apr-util-1.6.1 srclib/apr-util
[root@lampserver httpd-2.4.29]#
./configure --prefix=/usr/local/apache2 \
--with-pcre=/usr/local/pcre \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--enable-so \
--enable-modules=most \
--enable-mods-shared=all \
--with-included-apr \
--enable-rewrite=shared
[root@lampserver httpd-2.4.29]# make && make install


其中,configure步骤中每个配置选项的含义说明如下。
--prefix:指定Apache的安装路径。
--with-pcre:指定依赖的 PCRE 路径。
--with-apr:指定依赖的 apr 路径。
--with-apr-util:指定依赖的 apr-util 路径。
--enable-so:表示允许运行时加载 DSO 模块。
--enable-modules-most:表示支持动态启用模块,most 表示启用常用模块,all 表示启用所有模块。
--enable-mods-shared=all:表示动态地编译所有的模块。
--enable-rewrite=shared:表示将 rewrite 这个模块编译成动态的。
--with-mpm=prefork:设置Apache的工作模式(MPM,全称为Multi-Processing Module,多进程处理模块), Apache 目前一共有 3 种稳定的 MPM 模式,分别是 prefork、 worker 和 event,这里选择prefork。每个模式的特点和区别,后面做详细介绍。

三.编译MySQL
1.首先下载并解压 MySQL 源码包,操作如下:
[root@lampserver ~]# tar -zxvf mysql-boost-5.7.23.tar.gz -C /usr/local
2.接着,创建一个 MySQL 用户和组,操作如下:
[root@lampserver ~]# groupadd mysql
[root@lampserver ~]# useradd -r -g mysql -s /bin/false mysql
3.然后进入编译安装MySQL的环节,操作如下:
[root@lampserver ~]# cd mysql-5.7.23
[root@lampserver mysql-5.7.23]#
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSOL_DATADIR=/db/data \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DWITH_BOOST=boost \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAG_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DWITH_EMBEDDED_SERVER=1

make && make install

mkdir /db/data
chown -R mysql:mysql /db/data
[root@lampserver mysql-5.7.23]#
/usr/local/mysql/bin/mysqld \
--user=mysql \
--initialize-insecure \
--basedir=/usr/local/mysql \
--datadir=/db/data

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
ervice mysqld start

四.编译PHP7
yum -y install php-mcrypt libmcrypt libmcrypt-devel autoconf freetype freetype-devel gd libmcrypt libpng libpng-devel openjpeg openjpeg-devel libjpeg libjpeg-devel libxml2 libxml2-devel zlib curl curl-devel
tar zxvf php-7.2.3.tar.gz
cd php-7.2.3
[root@lampserver php-7.2.3]#
./configure --prefix=/usr/local/php7 \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo -enable-tokenizer \
--enable-zip

make && make install
cp php.ini-development /usr/local/php7/etc/php.ini

--prefix:指定 PHP 的安装目录。
--with-apxs2:用来指定Apache2的配置程序路径, PHP编译程序会通过这个程序查找 Apache 的相关路径。
--with-config-file-path:用来指定 PHP 配置文件的路径。
--enable-mbstring:表示启用 mbstring.
--with-curl: 表示支持 curl。
--with-gd:表示支持 GD。
--enable-fpm: 表示支持 FPM。
--enable-mysqlnd:表示启用mysqlnd驱动。
--with-pdo-mysql:表示启用 PDO 支持。
--with-mysqli: 表示启用 MySQLi 支持。
最后一个步骤是把源码包中的配置文件复制到 PHP 安装目录下。源码包中有两个配置:
php.ini-development 和 php.ini-production。根据名字判断,第一个是开发环境的配置文件,第二个是生产环境的配置文件,这里我们复制开发环境的配置文件即可。

五.LAMP集成配置
1.在 httpd.conf 最后加上如下一条配置:
Addtype application/x-httpd-php .php .phtml
2.此外,还需要修改下 Apache 默认索引页面。默认情况下 Apache 会自动访问 index.html页面。
要让Apache也自动访问index.php页面,需要使用DirectoryIndex指令,在httpd.conf中找到如下内容:
<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>
将它修改为如下内容:
<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>
3.重新启动 Apache:
[root@lampserver apache2]# /usr/local/apache/bin/apachectl restart

六.测试
首先验证下 PHP 解析是否正常。创建一个 phpinfo.php 文件,其内容如下:
<?php phpinfo(); ?>
将此文件放到 /usr/local/apache2/htdocs 目录下,然后通过浏览器访问 http://ip/phpinfo.php

接着,还要测试下PHP是否能正常连接MySQL数据库,在/usr/local/apache2/htdocs目录下添加一个 PHP 文件 mysqli.php,内容如下:
<?php
$conn = mysqli_connect('127.0.0.1', 'root', 'mysqlabc123', 'mysql');
if (!$conn) {
die("数据库连接错误". mysqli_connect_error());
}else{
echo"数据库连接成功";
}
?>

七.phpMyAdmin部署
phpMyAdmin 是一个用 PHP 编写的软件工具,它可以通过 Web 方式控制和操作 MySQL 数据库,管理者可以以Web接口的方式远程管理MySQL数据库,从而方便地建立、修改、删除数据库及表。以外, phpMyAdmin可以使MySQL数据库的管理变得十分简单和高效。
下载phpMyAdmin-4.7.9-all-languages.zip,解压到LAMP环境的/usr/local/apache2/htdocs目录下,操作过程如下:
[root@lampserver ~]# cd /usr/local/apache2/htdocs
[root@lampserver htdocs]# unzip phpMyAdmin-4.7.9-all-languages.zip
[root@lampserver htdocs]# mv phpMyAdmin-4.7.9-all-languages phpmyadmin
[root@lampserver htdocs]# cd phpmyadmin
[root@lampserver phpmyadmin]# mv config.sample.inc.php config.inc.php
修改config.inc.php文件,找到如下内容:
$cfg['Servers'][$i]['host'] = 'localhost';
将其修改为:
$cfg['Servers'][$i]['host'] = '127.0.0.1';
最后,通过浏览器访问 http://ip/phpmyadmin,然后输入数据库的用户名和密码,即可打开phpMyAdmin 界面。

八.LAMP部署WordPress
[root@lampserver ~]# cd /usr/local/apache2/htdocs
[root@lampserver htdocs]# tar zxvf wordpress-4.9.4-zh_CN.tar.gz
执行以下命令添加一个系统用户:
[root@lampserver ~]# useradd www
[root@lampserver ~]# chown -R www:www /usr/local/apache2/htdocs/ wordpress
最后,修改/etc/httpd/conf/httpd.conf文件,找到如下内容:
User daemon
Group daemon
将其修改为:
User www
Group www
这两个选项用来设置 httpd 服务的运行用户和组,我们将其修改为 www 用户和 www 组。
为了运行WordPress程序,还需要在数据库中提前创建一个用于WordPress存储数据的库。
将WordPress的数据库命名为cmsdb,下面开始创建数据库。
登录到 MySQL 数据库,执行如下操作:
[root@lampserver ~]# /usr/local/mysql/bin/mysql -uroot -p
mysql> create database cmsdb;
mysql> grant all on cmsdb.* to 'wpuser' identified by 'wppassword';
mysql> flush privileges;
mysql>quit;
到这里为止,数据库就创建完成了,重新启动httpd服务,然后通过浏览器访问http://ip/wordpress


0 篇评论

发表我的评论