CentOS源码安装Apache、MySQL、PHP

有运维或运维开发方面的需求,可以联系博主QQ 452336092或Email:admin#centos.bz(收费)

文章目录
[隐藏]

一、下载Apache

1. 点击官网链接进入官网,按照下图下载源码包。

有很多下载方式,可以选择http也可以选择ftp,上面的gif我是用的是http方式,随便选择了一个镜像进入站点,然后选择了http目录,进入http目录后,选择了httpd-2.4.29.tar.gz文件,右键复制了该文件的链接地址。

在命令行输入下面的命令下载源码文件:

# wget http://apache.claz.org/httpd/httpd-2.4.29.tar.gz

2.下载后输入下面的命令解压:

# tar -zxvf httpd-2.4.29.tar.gz

二、下载依赖

1. 下载apr

点击链接官网地址下载,如下图

我选择的是apr-1.6.3.tar.gz的链接,依然是右键,然后选择复制链接地址,输入如下命令下载:

# wget http://apache.mirrors.lucidnetworks.net//apr/apr-1.6.3.tar.gz

输入如下命令解压:

# tar -zxvf apr-1.6.3.tar.gz

进入解压目录

# cd apr-1.6.3

输入如下命令安装

# ./configure --prefix=/wwwAdmin/apr-1.6.3
# make
# make install

--prefix=/wwwAdmin/apr-1.6.3是指定安装目录.

2. 下载apr-util

点击链接官网地址下载,如下图

我依然选择的是第一个链接,然后复制其地址,输入如下命令下载:

# wget http://mirror.stjschools.org/public/apache//apr/apr-util-1.6.1.tar.gz

然后输入如下命令解压:

# tar -zxvf apr-util-1.6.1.tar.gz

进入解压目录

# cd apr-util-1.6.1

输入如下命令安装

# ./configure --prefix=/wwwAdmin/apr-util-1.6.1 -with-apr=/wwwAdmin/apr-1.6.3/
# make
# make install

--prefix=/wwwAdmin/apr-util-1.6.1是指定安装目录,-with-apr=/wwwAdmin/apr-1.6.3/是apr的安装目录

3. 下载pcre

点击链接官网地址下载,选择一个版本(我选择的pcre2-10.30.tar.gz),然后右键复制其链接地址,输入如下命令下载:

# wget https://ftp.pcre.org/pub/pcre/pcre2-10.30.tar.gz

输入下面的命令解压:

# tar -zxvf pcre2-10.30.tar.gz

进入解压后的目录:

# cd pcre2-10.30

输入如下命令安装

# ./configure
# make
# make install</span>

使用默认安装位置/usr/local/pcre。

4. 下载OpenSSL

点击链接官网地址下载,我选择的是openssl-1.1.0g.tar.gz,然后右键复制其链接地址,输入如下命令下载:

# wget https://www.openssl.org/source/openssl-1.1.0g.tar.gz

注:get下载似乎是提示404,所以我直接点击下载到我的电脑上,然后用ftp工具上传到服务器目录下的。

输入下面的命令解压:

# tar -zxvf openssl-1.1.0g.tar.gz

进入解压后的目录:

# cd openssl-1.1.0g

输入如下命令安装

# ./config shared --prefix=/wwwAdmin/openssl1.1.0g --openssldir=/usr/local/ssl<span class="redactor-invisible-space">
# make
# make install
--prefix=/wwwAdmin/pcre2-10.30是指定安装目录

三、安装Apache

进入解压后的目录

# cd httpd-2.4.29

执行下面的命令安装

# ./configure --prefix=/wwwAdmin/apache2.4.29 --sysconfdir=/wwwAdmin/apache2.4.29/conf --enable-so --enable-ssl=/wwwAdmin/openssl1.1.0g --enable-cgi --enable-rewrite --with-zlib --with-pcre=/usr/local/pcre --with-apr=/wwwAdmin/apr-1.6.3 --with-apr-util=/wwwAdmin/apr-util-1.6.1 --enable-modules=most --enable-mpms-shared=all --with-mpm=event
# make
# make install

安装完成后进入安装目录/wwwAdmin/apache2.4.29下的conf目录,使用vi httpd.conf命令打开文件,找到

#ServerName www.example.com:80

修改为(去掉前面的#号,#号是注释)

ServerName 你的服务器ip:80

这样就可以启动服务器了,启动命令往下读就会看到。(修改ServerName)

注意:安装的时候如果报某个库没有安装是正常的,因为系统中可能默认安装了某些库,有的可能没有默认安装,如果用到了没有安装的库自然会报错。如果遇到困难可以留言给我。

四、安装MySQL

1. 下载MySQL

点击进入Community版下载地址,如下图所示

根据自己的需要选择版本和系统,然后复制下载链接地址,使用wget命令下载

# wget https://downloads.mysql.com/archives/get/file/mysql-5.5.47.tar.gz

2. 解压缩源码包

# tar -zxvf mysql-5.5.47.tar.gz

3. 源码安装CMake

安装MySQL需要CMake,所以我们先用源码安装CMake。

下载网址:https://cmake.org/download/

下载之后解压, 并进入解压后的目录,执行下面的命令安装:

# ./bootstrap 
# make 
# make install 

4. 源码安装

可以参考这张网页,也可以直接跟着我的描述往下操作。

安装Perl-GD库

# yum install perl-GD

创建用户和组

为了保证安全,我们为MySQL创建一个单独的用户和组。按照下面的操作创建(其中我的mysql要安装在/wwwAdmiin/mysql5.5.47目录下,数据库数据放置在/wwwAdmiin/mysql5.5.47/data目录下,所以下面的目录根据自己要安装的位置而定。)

# useradd -r -U mysql -M -d /wwwAdmiin/mysql5.5.47/data

安装Boost

下载Boost

下载地址:http://sourceforge.net/projects/boost/files/boost/…

下载成功后解压到/usr/local/boost目录下,其他目录也可以,这里是举个例子,下面会用到。Boost使用的是下载目录,而不是安装目录。

安装ncurses lib

网址:http://invisible-island.net/ncurses/ncurses.html#d…

下载地址:ftp://invisible-island.net/ncurses/ncurses.tar.gz

解压后进入解压后的目录依次执行下面的命令:

# ./configuration 
# make 
# make install 

安装MySQL

进入mysql源码包解压后的目录,依次执行下面的命令:

# cmake . -DCMAKE_INSTALL_PREFIX=/wwwAdmiin/mysql5.5.47 -DMYSQL_DATADIR=/wwwAdmiin/mysql5.5.47/data -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=/usr/local/boost 
# make 
# make install 

-DMYSQL_USER使用我们上面创建的用户mysql,-DWITH_BOOST指定的是boost的解压目录。

启动MySQL

进入MySQL安装目录的scripts目录下,执行下面的命令:

# ./mysql_install_db --user=mysql --basedir=/wwwAdmiin/mysql5.5.47 --datadir=/wwwAdmiin/mysql5.5.47/data

–user指定用户。如果报错:没有mysql_install_db的权限,使用chmod 777 mysql_install_db即可。

这行命令执行完后,命令行会给出提示接下来如何配置root密码,这个我忘记了。可以按照给出的提示修改,如果不敢操作,可以按照我下面介绍的方法修改,结果是一样的。

进入MySQL安装目录的bin目录下,依次执行下面的命令:

# ./mysqld_safe --user=mysql &
# ./mysql -u root -p //输入这行命令后提示输入密码时直接回车,因为默认密码是空的
# use mysql;
# UPDATE user SET Password = PASSWORD('更改后的密码') WHERE user = 'root';<span class="redactor-invisible-space">
# FLUSH PRIVILEGES;<span class="redactor-invisible-space"></span></span>

将MySQL启动服务添加到系统服务

进入MySQL安装目录,执行下面的命令:

# cp support-files/mysql.server /etc/init.d/mysql

五、安装PHP

1. 下载

下载地址:http://php.net/

2. 依赖库安装

Python(安装libxml2需要用到)

# yum search python | grep python-devel sudo yum install python-devel.x86_64 

libxml2

下载地址:ftp://xmlsoft.org/libxml2/

进入解压后的根目录,依次执行下面的命令:

# ./configuration 
# make 
# make install

libjpeg

# yum install libjpeg-devel

freetype

# yum install freetype-devel 

libmcrypt

下载地址ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt

进入解压后的根目录,依次执行下面的命令:

# ./configuration 
# make
# make install 

libpng

下载地址:http://www.libpng.org/pub/png/libpng.html

下载完成后解压,然后进入解压目录,执行下面的命令:

# ./configuration
# make
# make install

3. 配置

# ./configure --prefix=/wwwAdmin/php5.5.38 --with-config-file-path=/wwwAdmin/php5.5.38/etc --with-apxs2=/wwwAdmin/apache2.4.29/bin/apxs --with-mysql=/wwwAdmin/mysql5.5.47/ --with-mysqli=/wwwAdmin/mysql5.5.47/bin/mysql_config --with-pcre-dir=/wwwAdmin/pcre2-10.30/ --with-libxml-dir --with-png-dir --with-jpeg-dir --with-fretype-dir --with-gd --with-zlib-dir --with-mcrypt --with-curl --enable-zip --enable-soap --enable-mbstring=all --enable-sockets --enable-calendar

4. 安装

# make
# make test
# make install

注意:以上安装并没有将各个服务设为开机启动,如果服务器发生reboot,需要手动开启Apache和MySQL。

apache的启动方式是进入安装目录下的bin目录,然后执行

# ./apachectl start

重启命令

# ./apachectl restart

停止命令

# ./apachectl stop

MySQL的启动相关命令

# service mysql start
# service mysql restart
# service mysql stop

喘口气~

到这里LAMP环境就安装完成了,下面进行配置

1、修改apache的用户名和组

我们先使用下面的命令新建用户:

# groupAdd wwwAdmin
# userAdd -g wwwAdmin wwwAdmin

然后进入apache安装目录下的conf目录下,使用 vi httpd.conf 命令打开apache的配置文件,找到

User daemon
Group daemon

修改为

User wwwAdmin
Group wwwAdmin

然后重启apache即可生效。

2、修改网站根目录

Apache默认的目录是在Apache安装目录下的htdocs目录下,我们可能希望将目录指向我们自建的位置,那么就需要做如下示例的配置:

  • 新建目录

我上面的安装目录都是wwwAdmin,我希望网站也放在这个目录中的某个文件夹下,进入wwwAdmin目录,执行下面的命令创建一个名为www的目录,用了存放网站。

mkdir www
  • 修改目录所属者和权限

我们将www目录的用户和组设置为Apache的用户和组,同时设置权限为可读写。

chown -r wwwAdmin:wwwAdmin www
chmod -r u+w www
  • 配置Apache网站根目录指向

打开apache的配置文件httpd.conf,找到

# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/wwwAdmin/apache2.4.29/htdocs"
<Directory "/wwwAdmin/apache2.4.29/htdocs">
...
</Directory>

修改为

# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/wwwAdmin/www"
<Directory "/wwwAdmin/www">
...
</Directory>

保存,然后重启apache即可生效。

3、配置Apache解析php

打开Apache的配置文件httpd.conf,找到

<Directory />
    AllowOverride none
    Require all denied
    ...
</Directory>

修改为(改为allow from all,不然会提示403)

<Directory />
    AllowOverride none
    #Require all denied
    Order deny,allow
    allow from all
</Directory>

找到

AddType application/x-gzip .gz .tgz

在下面添加(添加对php的解析)

AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php 

找到

<IfModule dir_module>
    DirectoryIndex index.html index.htm index.php
</IfModule>

改为

<IfModule dir_module>
    DirectoryIndex index.html index.htm index.php
</IfModule>
  • 配置域名

打开Apache的配置文件httpd.conf,在文件末尾添加如下内容:

<VirtualHost *:80>
    ServerName www.geek-era.com
    DocumentRoot /wwwAdmin/www/basic/web
    <Directory "/wwwAdmin/www/basic/web">
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

DocumentRoot指定的是网站目录。

到这里整个环境的搭建就完成了(但是我的心情却有点复杂)

下面介绍几个可能会碰到的小问题

  • Fatal error: Can’t open and lock privilege tables: Table ‘mysql.user’ doesn’t exist

MySQL启动的时候使用的命令是

进入MySQL安装目录的scripts目录下,执行下面的命令:

# ./mysql_install_db --user=mysql --basedir=/wwwAdmiin/mysql5.5.47 --datadir=/wwwAdmiin/mysql5.5.47/data 

如果执行这行命令报如上的错误,则使用下面的命令:

# ./mysql_install_db --user=mysql --basedir=/wwwAdmiin/mysql5.5.47 --datadir=/wwwAdmiin/mysql5.5.47/data --ldata=/var/lib/mysql

我安装过程中确实碰到过这个问题,而且用这个方法解决了。

  • 安装PHP报错 ‘ext/date/lib/parse_date.lo’ is not a valid libtool object

出现这个问题是因为在源码包中已经运行过make,然后再次运行。解决方法很简单,执行 make clean 然后再执行 make 即可。

原文出处:geek-era -> https://www.geek-era.com/site/detail?art_id=104

打赏

如果此文对你有所帮助,请随意打赏鼓励作者^_^