设为首页 收藏本站
查看: 1319|回复: 0

通过编译php为httpd的模块实现lamp

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-5-7 08:38:21 | 显示全部楼层 |阅读模式
简单罗列基础命令,只分享我的想法!
要求:把php编译成为httpd的模块,实现lamp,并且在httpd上面建立两个虚拟机,一个用于PHPAdmin,另外一个实现discuz。
环境:httpd-2.4.10,apr-1.5.0,apr-until-1.4.1,PHP-5.4.40,mariaDB-5.5.43和CentOS 6.6
一、首先编译httpd
编译2.4版本以上的httpd需要首先安装1.4版本以上的apr和apr-until
1)编译apr-1.5.0,这个软件类似于一个php的“虚拟机”,使用同一种php的代码都可以在上面运行。
1
2
./configure --prefix=/usr/local/apr
make && make install



2)编译apr-until-1.4.1。
1
./configure --prefix=/usr/local/apr-util –with-apr=/usr/local/apr



1
make && make install



3)编译httpd。
如果启用pcre功能,需要安装pcre-devel包。
1
2
yum install pcre-devel
./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24--enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/--enable-modules=most --enable-mpms-shared=all --with-mpm=prefork



(--enable-so:支持DSO机制,动态装卸载模块;--with-zlib:网上实施压缩的压缩库;--enable-cgi:启动cgi模块,主要用于httpd与php之间的通信;--enable-modules:启用哪些模块;--enable-ssl:支持ssl功能;--enable-mpms-shared:启用共享mpm模块;--with-mpm默认启动的MPM模块;)
httpd的管理命令加入到PATH
1
2
3
vim /etc/profile.d/httpd.sh
PATH=/usr/local/apache/bin:$PATH
. /etc/profile.d/httpd.sh



对httpd的include进行处理
1
ln -sv /usr/local/apache/include/ /usr/include/httpd



更新man.config
1
vim /etc/man.config



添加一行
1
MANPATH /usr/local/apache/man



创建apache用户
1
useradd -r apache



编译/etc/httpd24/httpd.conf主要配置文件
修改以下两行,把用户变为apache
1
2
user apache
group apache



因为我原来安装过httpd的rpm包,所以,直接复制启动脚本之后进行修改
1
2
cp /etc/init.d/httpd /etc/init.d/httpd24
vim /etc/init.d/httpd24



修改以下三项即可
1
2
3
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
pidfile=${PIDFILE-/var/run/httpd.pid}



检验一下/etc/init.d/httpd24start,看80端口是否启动。
把httpd24添加到服务启动项中
1
2
chkconfig --add httpd24
chkconfig httpd24 on



httpd服务启动,截图如下。
wKioL1VJ4Qmi9Mh7AAC3tJ__FKk845.jpg
图1
二、通用二进制格式安装MariaDB-5.4.43
1)有的是空间,直接分区,然后把数据文件放到新的分区中,如果想要充分利用空间,可以做LVM,新分区/dev/sda7,命令如下
1
2
3
pvcreate /dev/sda7
vgcreate myvg /dev/sda7
lvcreate -L 10G -n mylv2 myvg2



格式化
1
mkfs.ext4 /dev/myvg2/mylv2



挂载,然后可以添加到/etc/fstab中,开机自动启动
1
mount /dev/myvg2/mylv2 /mariadb/mydata/mdat



2)解压缩MariaDB的安装包,需要创建一个链接/user/local/mysql指向解压缩后的安装包(因为压缩包中的脚本指向的目录就是/usr/local/mysql)。
1
ln -sv /root/mariadb-5.5.43-linux-x86_64 /usr/local/mysql



mysql的管理命令加入到PATH
1
2
3
vim /etc/profile.d/mysqld.sh
PATH=/usr/local/mysql/bin:$PATH
. /etc/profile.d/mysqld.sh



对httpd的include进行处理
1
ln -sv /usr/local/mysql/include/ /usr/include/mysqld



更新man.config
1
vim /etc/man.config



添加一行
1
MANPATH /usr/local/mysql/man



把函数库添加到系统自动搜索的路径下面
1
vim /etc/ld.so.conf.d/mysql.conf



添加一行
1
/usr/local/mysql/lib



编辑完毕,退出,ldconfig,之后可以通过ldconfig-p | grep "/usr/local/mysql"看是否已经加载。
更改安装目录的属主和属组
1
2
cd /usr/local/mysql
chown -R root:mysql ./*



更改存放数据目录的属主和属组
1
chown -R mysql:mysql /mariadb/mydata/



安装mysql的配置文件,mysql搜索的配置文件依次是/etc/my.cnf->/etc/mysql/my.cnf->~/.my.cnf
1
mkdir /etc/mysql



1
cp support-files/my-large.cnf /etc/mysql/my.cnf



初始化数据库到指定的目录
1
2
cd /user/local/mysql
./scripts/mysql_install_db --user=mysql --datadir=/mariadb/mydata/



编辑/etc/mysql/my.cnf
1
vim /etc/mysql/my.cnf



添加以下两行
1
2
datadir = /mariadb/mydata
innodb_file_per_table = on



根据cpu个数修改以下一行,线程并发个数由来:CPU个数乘以2
1
thread_concurrency = 4



添加启动脚本
1
2
cd/usr/local/mysql
cp ./support-files/mysql.server /etc/init.d/mysqld43



添加到开机启动的服务中
1
2
chkconfig --add mysqld43
chkconfig mysqld43 on



检验是否启动,截图如下
1
/etc/init.d/mysqld43 start



wKioL1VJ4e7BzuH3AAJhlIwk2mw836.jpg
图2
三、把php-5.4.40编译安装成为httpd的模块,从而实现lamp的组合。
1)安装依赖包(devel子包主要是包含一些include文件)
1
yum install libxml2-devel libmcrypt-devel bzip2-devel –y



2)编译
1
2
./configure --prefix=/user/local/php --with-mysql=/usr/local/mysql--with-mysqli=/usr/local/mysql/bin/mysql_config--with-apxs2=/usr/local/apache/bin/apxs --enable-mbstring --with-freetype-dir--with-jpeg-dir --with-zlib --with-libxml-dir=/usr --enable-xml--enable-sockets --with-mcrypt --with-bz2--with-config-file-path=/etc/php/php.ini --with-config-file-scan-dir=/etc/php.d/
make && make install



3)安装主配置文件
1
2
mkdir /etc/php
cp php.ini-production /etc/php/php.ini



四、编辑/etc/httpd24/httpd.conf,支持php
1
vim /etc/httpd24/httpd.conf



添加以下三行
1
2
3
DirectoryIndex index.php index.html
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps



五、测试php
1)编辑index.php
1
2
3
4
vim /usr/local/apache/htdocs/index.php
<?
         phpinfo();
?>



重新启动httpd24
刷新网页即可,截图如下
wKiom1VJ4OGh6wMTAAUbkI5Ghto968.jpg
图3
wKioL1VJ4m_SpQxVAARV-VLuMeM752.jpg
图4
六、httpd中创建虚拟机
打开虚拟机配置文件
1
vim /etc/httpd24/httpd.conf



修改以下一行
1
Include /etc/httpd24/extra/httpd-vhosts.conf



编辑httpd-vhosts.conf配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
vim /etc/httpd24/extra/httpd-vhosts.conf
<VirtualHost 172.16.49.1:80>
    #ServerAdminwebmaster@dummy-host.example.com
    DocumentRoot"/usr/local/apache/vhost1"
    ServerName www.a.com
    #ServerAliaswww.dummy-host.example.com
    ErrorLog"logs/error_log"
    CustomLog"logs/access_log" combine
    <Directory"/usr/local/apache/vhost1">
             AllowOverride None
         Require all granted
    </Directory>
</VirtualHost>
<VirtualHost 172.16.49.1:80>
    #ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot"/usr/local/apache/vhost2"
    ServerName www.b.com
    #ServerAliaswww.dummy-host.example.com
    ErrorLog"logs/error22_log"
    CustomLog"logs/access22_log" combine
    <Directory"/usr/local/apache/vhost2">
             AllowOverride None
         Require all granted
    </Directory>
</VirtualHost>



七、phpAdmin配置(省略,上一篇博客有写到),此次实验是通过vhost1显示,只有截图。
wKioL1VJ4rbCwijDAASFg8RF-Ls140.jpg
图5
八、discuz在vhost2中显示
1)查看README,如下图:
wKioL1VJ4vHBbQUkAAVDg3JeVDg889.jpg
图6
2)修改upload目录中config和data目录的权限
chmod –R 777 config/ data/ uc_client/ uc_server/
3)通过浏览器访问http://www.b.com/upload/install/,如下图
wKiom1VJ4aaD2jhHAAR59UjXXeg545.jpg
图7
4)继续下一步进行配置
wKiom1VJ42jDr2w4AAJGHqx4IhE463.jpg
图8
wKioL1VJ422yXx8PAAPw32Hrxv4137.jpg
图9
有志同道合的“战友”可以加我qq:865765761。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-64436-1-1.html 上篇帖子: 基于RPM包安装LAMP架构 下篇帖子: 编译安装lamp
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表