阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

源码编译安装LAMP环境及配置基于域名访问的多虚拟主机

135次阅读
没有评论

共计 10463 个字符,预计需要花费 27 分钟才能阅读完成。

实验环境及软件版本:

CentOS 版本:6.6(2.6.32.-504.el6.x86_64)
apache 版本:apache2.2.27
MySQL 版本:Mysql-5.6.23
php 版本:php-5.3.27
一、关闭防火墙:service iptables stop
                chkconfig iptables off
二、关闭 selinux: sed -i ‘s/SELINUX=disabled/SELINUX=enforcing/g’ /etc/selinux/config
                init 6 重启系统一定要!
三、apache 安装
安装依赖:yum -y install zlib zlib-devel

          tar zxvf apr-1.5.1.tar.gz

          cd apr-1.5.1

              ./config –prefix=/usr/local/apr
              make && make install
              tar zxvf apr-util-1.5.4.tar.gz
              cd apr-util-1.5.4
              ./config –prefix=/usr/local/apr-util –with-apr=/usr/local/apr
              make && make install
2. 安装 apache: tar zxvf apache2.2.27.tar.gz
              cd  apache2.2.27
              mkdir /application     
              ./configure –prefix=/application/apache2.2.27 –enable-deflate –enable-expires –enable-headers –enable-modules=most –enable-so –with-mpm=worker –enable-rewrite –with-apr=/usr/local/apr –with-apr-util=/usr/local/apr-util
              make && make install
              ln -s /application/apache2.2.27/ /application/apache/
              启动:/application/apache/bin/apachectl start
              echo “/application/apache/bin/apachectl start” >>/etc/rc.local 加入开机启动
              查看是否启动功能:
              [root@LAMP tools]# lsof -i:80
              COMMAND  PID USER  FD  TYPE DEVICE SIZE/OFF NODE NAME
              httpd    1344 root    4u  IPv6  10747      0t0  TCP *:http (LISTEN)
              httpd  62462 wapp    4u  IPv6  10747      0t0  TCP *:http (LISTEN)
              httpd  62463 wapp    4u  IPv6  10747      0t0  TCP *:http (LISTEN)
              httpd  62464 wapp    4u  IPv6  10747      0t0  TCP *:http (LISTEN)
              httpd  62546 wapp    4u  IPv6  10747      0t0  TCP *:http (LISTEN)
四、源码安装 Mysql-5.6.23
      请移步:http://linuxzkq.blog.51cto.com/9379412/1584642,这里不在描述
五、php 安装
    1. 安装依赖:yum install zlib libxml libjpeg freetype libpng gd  curl libiconv  zlib-                  devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel                    curl-devel -y
              tar zxvf libiconv-1.14.tar.gz
                cd libiconv-1.14
                [root@LAMP libiconv-1.14]# ./configure –prefix=/usr/local/libiconv
                make && make install
    2.php 安装: tar zxvf php-5.3.27.tar.gz
                ./configure –prefix=/application/php-5.3.27 –with-apxs2=/application/apache/bin/apxs –with-mysql=/usr/local/mysql –with-xmlrpc –with-openssl –with-zlib –with-freetype-dir –with-gd –with-jpeg-dir –with-png-dir –with-iconv=/usr/local/libiconv –enable-short-tags –enable-sockets –with-zend-multibyte –enable-soap –enable-mbstring –enable-static –enable-gd-native-ttf –with-curl –with-xsl –enable-ftp –with-libxml-dir –with-apr=/usr/local/apr –with-apr-util=/usr/local/apr-util
               
                出错:configure: error: Cannot find MySQL header files under /usr/local/mysql.
                [root@localhost php-5.5.6]# find / -name mysql.h
/usr/include/mysql/mysql.h
                查找到 mysql.h 文件,我们更改参数为 –with-mysql=/usr,如果没有的话,请安装 mysql-devel 包,

              [root@localhost php-5.5.6]# yum install mysql-devel

              再次编译:
              ./configure –prefix=/application/php-5.3.27 ……后面省略
             
              configure: error: Cannot find libmysqlclient_r under /usr.
              Note that the MySQL client library is not bundled anymore!
              [root@LAMP php-5.3.27]# yum -y install libxslt*
              修改编辑参数如下,上面的参数不行,是因为这个和前面的 apache,mysql 编译时的参数有关系:
              [root@LAMP php-5.3.27]# ./configure –prefix=/application/php-5.3.27 –with-apxs2=/application/apache/bin/apxs –with-mysql=/usr –with-xmlrpc –with-openssl –with-zlib –with-freetype-dir –with-gd –with-jpeg-dir –with-png-dir –with-iconv –enable-short-tags –enable-sockets –with-zend-multibyte –enable-soap –enable-mbstring –enable-static –enable-gd-native-ttf –with-curl –with-xsl –enable-ftp –with-libxml-dir –with-libdir=lib64

             
+——————————————————————–+

Thank you for using PHP.

Notice: Following unknown configure options were used:

–with-zend-multibyte

Check ‘./configure –help’ for available options
php 检查系统配置环境成功
      3. 一并附上 CentOS x64 里 php 源码编译出错参见情况及解决办法(摘自网络):

configure: error: xml2-config not found. Please check your libxml2 installation.

yum install libxml2-devel.x86_64
configure: error: Cannot find OpenSSL’s

yum install openssl-devel.x86_64
configure: error: Could not find pcre.h in /usr/local

yum install pcre-devel.x86_64
configure: error: Could not find pcre.h in /usr/local

“–with-pcre-regex=/usr/include” \
configure: error: Could not find libpcre.(a|so) in /usr/include

“–with-pcre-regex=/usr” \
configure: error: Please reinstall the libcurl distribution –
easy.h should be in /include/curl/

yum install curl-devel.x86_64
configure: error: libjpeg.(a|so) not found.

yum install libjpeg-devel.x86_64
configure: error: libpng.(a|so) not found.

yum install libpng-devel.x86_64
configure: error: freetype.h not found.

yum install freetype-devel.x86_64
configure: error: Please reinstall the iconv library.

“–with-iconv” \
configure: error: mcrypt.h not found. Please reinstall libmcrypt.

yum install libmcrypt.x86_64 libmcrypt-devel.x86_64
configure: error: Please reinstall libmhash – I cannot find mhash.h

yum install mhash.x86_64 mhash-devel.x86_64
Note that the MySQL client library is not bundled anymore!

yum install php-mysql.x86_64 mysql-devel.x86_64
configure: error: Please reinstall the BZip2 distribution

yum install bzip2-devel.x86_64
configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.
DISABLE IMAP
configure: error: Cannot find pspell

yum install aspell-devel.x86_64
configure: error: Cannot find libtidy

yum install libtidy.x86_64 libtidy-devel.x86_64
error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution

yum install libxslt.x86_64 libxslt-devel.x86_64
collect2: ld returned 1 exit status

yum install glibc-utils.x86_64 libtool-ltdl-devel.x86_64
Step by step to guide PHP Compile
Step 1: Update & Install Development Tools & Libraries

yum update
yum group install “Development Tools”
yum group install “Development Libraries”
Step 2: Run the bellow bash script

#!/bin/sh
“./configure” \
“–prefix=/usr/local/php5” \
“–enable-force-cgi-redirect” \
“–enable-fastcgi” \
“–with-bz2” \
“–with-config-file-path=/usr/local/etc” \
“–with-config-file-scan-dir=/usr/local/etc/php.d” \
“–with-curl=/usr/local/lib” \
“–with-gd” \
“–with-gettext” \
“–with-jpeg-dir=/usr/local/lib” \
“–with-freetype-dir=/usr/local/lib” \
“–with-kerberos” \
“–with-mcrypt” \
“–with-mhash” \
“–with-mime-magic” \
“–with-mysql” \
“–with-mysqli” \
“–with-pcre-regex=/usr” \
“–with-pdo-mysql=shared” \
“–with-pdo-sqlite=shared” \
“–with-pear=/usr/local/lib/php” \
“–with-png-dir=/usr/local/lib” \
“–with-pspell” \
“–with-sqlite=shared” \
“–with-tidy” \
“–with-ttf” \
“–with-xmlrpc” \
“–with-xsl” \
“–with-zlib” \
“–with-zlib-dir=/usr/local/lib” \
“–with-openssl” \
“–with-iconv” \
“–with-libdir=lib64” \
“–enable-bcmath” \
“–enable-calendar” \
“–enable-exif” \
“–enable-ftp” \
“–enable-gd-native-ttf” \
“–enable-libxml” \
“–enable-magic-quotes” \
“–enable-soap” \
“–enable-sockets” \
“–enable-mbstring” \
“–enable-zip” \
“–enable-wddx”
fromhttp://www.lifelinux.com/error-compiling-php-on-centos-x64/

make && make install

[root@LAMP php-5.3.27]# ls php
php5.spec            php.ini-development
php5.spec.in        php.ini-production
php.gif             
[root@LAMP php-5.3.27]# diff php.ini-production php.ini-development  对比对内开发配置文件和对外应用配置文件
521c521
< error_reporting = E_ALL & ~E_DEPRECATED

> error_reporting = E_ALL | E_STRICT
538c538
< display_errors = Off

> display_errors = On
549c549
< display_startup_errors = Off

> display_startup_errors = On
593c593
< track_errors = Off

> track_errors = On
611c611
< html_errors = Off

> html_errors = On
751c751
< ; scheduled removed in PHP 5.4.

> ; removed in PHP 5.4.
845c845
< ;cgi.redirect_status_env =

> ;cgi.redirect_status_env =
1318c1318
< mysqlnd.collect_memory_statistics = Off

> mysqlnd.collect_memory_statistics = On
1587c1587
< session.bug_compat_42 = Off

> session.bug_compat_42 = On
1596c1596
< session.bug_compat_warn = Off

> session.bug_compat_warn = On
[root@LAMP php-5.3.27]# cp php
php5.spec            php.ini-development
php5.spec.in        php.ini-production
php.gif             
[root@LAMP php-5.3.27]# cp php.ini-production /application/php/lib/php.ini
[root@LAMP php-5.3.27]#
          小结:正式配置文件一般关闭显示 LOG, 不输出 LOG。

六、开启虚拟机功能并修改用户及用户组:useradd -M -s /sbin/nologin wapp
                          cd /application/apache/conf
                          vi httpd.conf
                          找到 
                          User daemon 修改为 wapp
                          Group daemon 修改为 wapp
 

                          找到 # Include conf/extra/httpd-vhosts.conf  开启虚拟机
                          取消前面的 #号注释, 保存退出。
七、整合 php 和 apache:    vi httpd.conf
                         
                                                    定位至 AddType application/x-gzip .gz .tgz 添加如下二行:
                                                    AddType application/x-httpd-php  .php  .phtml
                                                    AddType application/x-httpd-php-source  .phps
                                                    定位至 DirectoryIndex index.html
                                                    修改为:
                                                    DirectoryIndex  index.php  index.html
                                                  然后重新启动 apache,或让其重新载入配置文件即可测试 php 是否已经可以正常使用。
八、定义虚拟机:cd /application/apache/conf/extra
                        vi httpd-vhosts.conf
                        在文件最后面加入几个基于域名访问的虚拟机实例如下:
                         
<VirtualHost *:80>
    ServerAdmin kk@linuxidc.com
    DocumentRoot “/data/cms”
    ServerName www.linuxidc.org
    ServerAlias linuxidc.org
    ErrorLog “logs/www.linuxidc.org-error_log”
    CustomLog “logs/www.linuxidc.org-access_log” common
</VirtualHost>
<VirtualHost *:80>

    ServerAdmin kk@linuxidc.com
    DocumentRoot “/data/bbs”
    ServerName bbs.linuxidc.org
    ErrorLog “logs/bbs.linuxidc.org-error_log”
    CustomLog “logs/bbs.linuxidc.org-access_log” common
</VirtualHost>
<VirtualHost *:80>

    ServerAdmin kk@linuxidc.com
    DocumentRoot “/data/blog”
    ServerName blog.linuxidc.org
    ErrorLog “logs/blog.linuxidc.org-error_log”
    CustomLog “logs/blog.linuxidc.org-access_log” common
</VirtualHost>
保存退出,重启 apache 服务!

九、启用虚拟机后,上传完 php 网站程序,更改完虚拟机根目录及文件所属用户和用户组为:wapp:root(chown -R wapp:root /data)后访问出现 403 错误,解决方法如下:

    这是 apache2.2 中文参考手册中的示例。一般的咱们这样配置在以前版本是没有问题的。但是现在就不一样了。当访问某个虚拟主机下的页面的时候会出现 类似:“403(禁止访问),你无法查看该网页…”的错误。很明显这是拒绝访问的提示。按照经验很容易找到 (httpd.conf) 下面的内容:
<Directory “/ 虚拟主机网站根目录 ”>

    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
</Directory> 
// 先拒绝后允许 Deny from all
// 拒绝所有的访问 </Directory>

    给虚拟主机网站根目录授权访问权限
          cd /application/apache/conf/extra
          vi httpd-vhosts.conf
          在定义的所有虚拟主机最前面加入以下代码:
         
          <Directory “/data”>

              Options FollowSymLinks
              AllowOverride None
              Order deny,allow
          </Directory>
          保存退出,重新启动 apache 服务正常访问!

———————————— 分割线 ————————————

CentOS 6.5 系统安装配置 LAMP(Apache+PHP5+MySQL)服务器环境 http://www.linuxidc.com/Linux/2014-12/111030.htm

Ubuntu 14.04 配置 LAMP+phpMyAdmin PHP(5.5.9)开发环境  http://www.linuxidc.com/Linux/2014-10/107924.htm

Windows 7 下硬盘安装 Ubuntu 14.10 图文教程 http://www.linuxidc.com/Linux/2014-10/108430.htm

U 盘安装 Ubuntu 14.10 http://www.linuxidc.com/Linux/2014-10/108402.htm

Ubuntu 14.10 正式发布下载 http://www.linuxidc.com/Linux/2014-10/108363.htm

Ubuntu 14.04 LTS 如何升级到 Ubuntu 14.10  http://www.linuxidc.com/Linux/2014-10/108381.htm

Ubuntu 14.10 下安装 LAMP 服务图文详解  http://www.linuxidc.com/Linux/2014-12/110082.htm

———————————— 分割线 ————————————

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-04/115805.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计10463字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中