源码编译安装LAMP

Apache简介

1.Apache的起源Apache服务器是针对之前出现的若干个Web服务器程序进行整合、完善后形成的软件,其名称来源于"APatchyServer",意思是"基于原有Web服务程序的代码进行修改(补丁)后形成的服务器程序"

2.Apache的主要特点

开放源代码:这是Apache服务器的重要特性之一,也是其他特性的基Apache服务程序由全世界的众多开发者共同维护,并且任何人都可以自由使用,这充分体现了开源软件的精神。

跨平台应用:这个特性得益于Apache的源代码开放。Apache服务器可以运行在绝大多数软硬件平台上,所有UNIX操作系统都可以运行Apache服务器,甚至Apache服务器可以良好地运行在大多数Windows系统平台中。

支持各种Web编程语言:Apache服务器可支持的网页编程语言包括Perl、PHP、Python、Java等,甚至微软的ASP技术也可以在Apache服务器中使用。支持各种常用的Web编程语言使Apache具不更广泛的应用领域。

模块化设计:Apache并没有将所有的功能集中在单一的服务程序内部,而是尽可能地通过标准的模块实现专有的功能,这为Apache服务器带来了良好的扩展性。其他软件开发商可以编写标准的模块程序,从而添加Apache本身并不具有的其他功能。

运行非常稳定:Apache服务器可用于构建具有大负载访问量的Web站点,很多知名的企业网站都使用Apache作为Web服务软件。良好的安全性;Apache服务器具有相对较好的安全性,这是开源软件共同具有的特性。

安装http服务器

1.准备工作

为了避免发生端口冲突、程序冲突等现象,建议卸载使用RPM方式安装的httpd。httpd服务编译安装时需要依赖apr-util-devel、pcre-devel等软件,因此在httpd编译安装之前需要先安装依赖软件。

2.源码编译及安装

1.解包

将下载获得的httpd源码包解压到并释放到/usr/src目录下,且切换到展开后的源代码目录中

2.配置

根据服务器的实际应用需要,可以灵活设置不同的定制选项,如指定安装路径、启用字符集支持等。

上述配置命令中,各选项的含义如下。

--prefix:指定将httpd服务喔序安装到哪个目录下,如/usr/local/httpd。

--enable-so:启用动态加载模块支持,使httpd具备进一步扩展功能的能力。

--enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护。

--enable-charset-lite:启用字符集支持,以便支持使用各种字符集编码的网页。

--enable-cqi:启用CGI脚本程序支持,便于扩展网站的应用访问能力。

3.编译及安装完成配置以后,执行"make"命令进行编译,将源代码转换为可执行的程序;然后执行"makeinstall"命令完成最后的安装过程;将编译完的httpd程序及相关目录、文件自动复制到预设的安装目录。

3.确认安装结果

在安装后的/usr/local/httpd目录下包含httpd服务相关的各种子目录,主要子目录的用途如下。

/usr/local/httpd/bin:存放httpd服务的各种可执行程序文件,包括主程序httpd、服务控制工具apachectl等。

/usr/local/httpd/conf:存放httpd服务的各种配置文件,包括主配置文件httpd.conf、增强配置子目录extra等。

/usr/local/httpd/htdocs:存放网页文档,包括默认首页文件index.html等。

/usr/local/httpd/logs:存放httpd服务的日志文件。

/usr/local/httpd/modules:存放httpd服务的各种模块文件。

/usr/local/httpd/cgi-bin:存放各种CGI程序文件。

4.优化执行路径

添加 httpd 系统服务

After=network.target

Before/After:要是一个服务 Before 另一个服务,那么在并行启动时(Systemd 总是用进程 0 并行启动所有东西,然后通过这两个标记来二次等待排序),那另一个服务这时就会等这个服务先启动并返回状态,注意是先启动而不是启动成功,因为失败也是一种状态,一定要成功才启动另一个服务是通过依赖关系定义的。反之 After 亦然。After=network.target 指的是后于network服务启动。

Type=forking

服务的启动方式,有fork方式和simple方式

forking的方式在启动程序后会调用 fork() 函数,把必要的通信频道都设置好之后父进程退出,留下守护精灵的子进程。你要是使用的这种方式,最好也指定下 PIDFILE=,不要让 Systemd 去猜,非要猜也可以,设置 GuessMainPID 为 yes。

构建 PHP 运行环境

5安装 PHP 软件包
准备工作

为了避免发生程序冲突等现象,建议先将 RPM 方式安装的 PHP 及相关依赖包

root@www \~\]# ****rpm -e php php-cli php-ldap php-common php-mysql --nodeps**** \[root@www \~\]# yum -y install ****zlib-devel**** ****libxml2**** ****libxml2-deve**** ****l**** ****lxz-devel**** ###### **安装扩展工具库** (1)安装 libmcrypt \[root@www \~\]# ****tar zxf libmcrypt-2.5.8.tar.gz**** \[root@www \~\]# ****cd libmcrypt-2.5.8/**** \[root@www libmcrypt-2.5.8\]# ****./configure**** \[root@www libmcrypt-2.5.8\]# ****make \&\& make install**** \[root@www libmcrypt-2.5.8\]# ****ln -s /usr/local/lib/libmcrypt.\* /usr/lib/**** (2)安装 mhash \[root@www \~\]# ****tar zxf mhash-0.9.9.9.tar.gz**** \[root@www \~\]# ****cd mhash-0.9.9.9/**** \[root@www mhash-0.9.9.9\]# ****./configure**** \[root@www mhash-0.9.9.9\]# ****make \&\& make install**** \[root@www mhash-0.9.9.9\]# ****ln -s /usr/local/lib/libmhash\* /usr/lib/**** (3)安装 mc \[root@www mcrypt-2.6.8\]# ****./configure**** rypt \[root@www \~\]# ****tar zxf mcrypt-2.6.8.tar.gz**** \[root@www \~\]# ****cd mcrypt-2.6.8/**** \[root@www mcrypt-2.6.8\]# ****export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH**** \[root@www mcrypt-2.6.8\]# ****./configure**** \[root@www mcrypt-2.6.8\]# ****make \&\& make install**** ###### **编译安装** **PHP** (1)解包 \[root@www \~\]# ****tar zxf php-5.5.38.tar.gz**** \[root@www \~\]# ****cd php-5.5.38**** (2)配置 \[root@www php-5.5.38\]# ****./configure --prefix=/usr/local/php5**** ****\\**** ****--with-mcrypt \\**** ****--with-apxs2=/usr/local/httpd/bin/apxs \\**** ****--with-mysql=/usr/local/mysql \\**** ****--with-mysqli=/usr/local/mysql/bin/mysql_config \\**** ****--with-config-file-path=/usr/local/php5 \\**** ****--enable-mbstring**** 注意: 不能用192.168.10.101连接。 想用主机IP连接需要在安装php时指定mysql函数集为mysqlnd ****--with-mysqli**** ****=mysqlnd**** 如果使用本地函数集,php连接mysql数据库可以使用localhost、127.0.0.1、本机主机名 ,但不能用本机IP地址192.168.10.101 ****--with-apxs2=/usr/local/httpd/bin/apxs**** 整合apache,apxs功能是使用mod_so中的LoadModule指令,加载指定模块到apache,要求apache要打开SO模块 (3)编译及安装 \[root@www php-5.5.38\]# ****make**** ****\&\&**** ****make install**** 备注: 这一步时间很长 备注: ****./configure --prefix=/usr/local/php5**** ****\\**** ****--with-apxs2=/usr/local/httpd/bin/apxs \\**** ****--with-mysql=**** ****mysqlnd**** ****\\**** ****--with-mysqli=**** ****mysqlnd**** ****\\**** ****--with-config-file-path=/usr/local/php5 \\**** ****--enable-mbstring**** ### **设置** **LAMP** **组件环境** ###### **php.ini** **配置调整** (1)php.ini 的建立及基本设置 \[root@www php-5.5.38\]# ****cp php.ini-development /usr/local/php5/php.ini**** \[root@www php-5.5.38\]# ****vim /usr/local/php5/php.ini**** default_charset = "UTF-8" #去掉前面的注释 file_uploads = On upload_max_filesize = 2M max_file_uploads = 20 post_max_size = 8M short_open_tag = On ##修改值 extension=php_mysqli.dll ##去掉前面的注释 (2)添加 ZendGuardLoader 优化模块 \[root@www\~\]#****tar**** ****zxf**** ****zend-loader-php5.5-linux-x86_64_update1.tar.gz**** \[root@www\~\]#****cd**** ****zend-loader-php5.5-linux-x86_64/**** \[root@www zend-loader-php5.5-linux-x86_64\]#****cp ZendGuardLoader.so /usr/local/php5/lib/php**** \[root@www \~\]# ****vim /usr/local/php5/php.ini**** 在\[PHP\]下面添加: \[PHP

zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so

zend_loader.enable=1

2: httpd.conf 配置调整

root@www \~\]# ****vim /usr/local/httpd/conf/httpd.conf**** Listen \*:80 LoadModule php5_module modules/libphp5.so \ AddType application/x-httpd-php .php \ DirectoryIndex index.html index.php #Include conf/extra/httpd-vhosts.conf \[root@www \~\]# ****apachectl -t**** Syntax OK \[root@www \~\]# ****systemctl restart httpd**** ### **测试** **LAMP** **协同工作** ###### **1:测试** **PHP** **网页能否正确显示** \[root@www \~\]# ****vim /usr/local/httpd/htdocs/test1.php**** \ ###### **2:测试** **PHP** **网页能否访问** **MySQL** **数据库** \[root@www \~\]# ****vim /usr/local/httpd/htdocs/test2.php**** \ 对数据库的连接授权,授权后可以使用主机名连接 mysql\> grant all on \*.\* to root@'www.benet.com' identified by '123456'; 注意: 如果用的是mysqlnd,要用IP地址进行连接,127.0.0.1或192.168.10.101都可以

相关推荐
资讯第一线3 小时前
Windows系统工具:WinToolsPlus 之 SQL Server Suspect/质疑/置疑/可疑/单用户等 修复
运维
惊起白鸽4504 小时前
LVS负载均衡
运维·负载均衡·lvs
Sapphire~5 小时前
Linux-07 ubuntu 的 chrome 启动不了
linux·chrome·ubuntu
伤不起bb5 小时前
NoSQL 之 Redis 配置与优化
linux·运维·数据库·redis·nosql
广东数字化转型6 小时前
nginx怎么使用nginx-rtmp-module模块实现直播间功能
linux·运维·nginx
love530love6 小时前
【笔记】在 MSYS2(MINGW64)中正确安装 Rust
运维·开发语言·人工智能·windows·笔记·python·rust
啵啵学习6 小时前
Linux 里 su 和 sudo 命令这两个有什么不一样?
linux·运维·服务器·单片机·ubuntu·centos·嵌入式
半桔6 小时前
【Linux手册】冯诺依曼体系结构
linux·缓存·职场和发展·系统架构
网硕互联的小客服7 小时前
如何利用Elastic Stack(ELK)进行安全日志分析
linux·服务器·网络·安全
数字芯片实验室7 小时前
寄存器模型生成:从手工到自动化
运维·自动化