-
|<p>1\.</p><p>**LAMP概述**</p>| | :- | ||<p>a.</p><p>**什么是LAMP**</p>| 目前最为成熟的一种企业网站应用模式,可提供动态Web站点应用及开发环境 ||<p>b.</p><p>**构成组件**</p>| | :- | :- | Linux、Apache、MySQL、PHP/Perl/Python ||<p>c.</p><p>**LAMP的优势**</p>| | :- | :- | 成本低廉 可定制、易于开发 方便易用、安全和稳定 |<p>2\.</p><p>**搭建源码包Apache**</p>| | :- | ||<p>a.</p><p>**解包,配置,编译,安装**</p>| ||1||<p>[root@www ~]# rpm -e httpd --nodeps //卸载rpm软件包 --nodeps是强制卸载忽略依赖 生</p><p>产环境不建议此操作 可以使用yum remove 来卸载</p>| 2 [root@www ~]# yum install -y apr-util-devel pcre-devel make gcc\* //安装依赖软件包 3 [root@www ~]# systemctl stop firewalld //关闭防火墙 4 [root@www ~]# tar zxf httpd-2.4.25.tar.gz -C /usr/src/ //解包httpd源码包到指定目录 5 [root@www ~]# cd /usr/src/httpd-2.4.25/ //切换到已解包的httpd目录 6 ||7||<p>[root@www httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-</p><p>rewrite --enable-charset-lite --enable-cgi && make && make install</p>| | :- | :- | :- | :- | 8 ##配置,编译,安装 ||<p>b.</p><p>**优化Apache**</p>| | :- | :- | ||<p>i.</p><p>**优化路径**</p>| 1 [root@www ~]# ln -s /usr/local/httpd/bin/\* /usr/local/bin/ ##优化路径 2 [root@www ~]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl ||3||<p>lrwxrwxrwx. 1 root root 30 5月 27 20:21 /usr/local/bin/apachectl -></p><p>/usr/local/httpd/bin/apachectl</p>| | :- | :- | :- | :- | ||4||<p>lrwxrwxrwx. 1 root root 26 5月 27 20:21 /usr/local/bin/httpd -></p><p>/usr/local/httpd/bin/httpd</p>| ||<p>ii.</p><p>**添加系统服务**</p>| <a name="br2"></a>1 [root@www ~]# vim /lib/systemd/system/httpd.service ##创建httpd系统配置文件 2 [Unit] ##进行单元类型控制 3 Description=The Apache HTTP Server ##说明是什么服务 4 After=network.target ##启动之前需要先启动网络服务就依赖于网络 5 [Service] ##定义服务的一些具体运行参数的设置 6 Type=forking ##以后台进程的方式运行这个服务 7 PIDFile=/usr/local/httpd/logs/httpd.pid ##运行时的进程ID存放路径 8 ExecStart=/usr/local/bin/apachectl $OPTIONS ##执行开启服务动作的时执行后面的的动作 9 ExecReload=/bin/kill -HUP $MAINPID ##重新载入服务配置文件时执行后面的动作 10 KillMode=process ##当终止进程时,它会终止主程序(即可以通过管理进程进行控制) 11 Restart=on-failure ##当服务非正常退出的时候会自动重启服务 12 RetartSec=42s ##重启服务等待超时时间(如果超过了就无法启动) 13 [Install] ##定义运行级别 14 WantedBy=graphical.target ##运行级别在5(既图形界面) 15 最小化则是 WantedBy=multi-user.target ||16||<p>[root@www bin]# systemctl enable httpd.service ##设置为开机自启动(前提配置好相应的系统配</p><p>置文件)</p>| | :- | :- | :- | :- | ||17||<p>Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to</p><p>/usr/lib/systemd/system/httpd.service. ##创建软链接文件</p>| iii. **优化主配置文件** 1 [root@www~]# vim /usr/local/httpd/conf/httpd.conf ||2||<p>PidFile logs/httpd.pid ##设置用于保存 httpd 进程号(PID)的文件,默认保存地址为</p><p>logs/httpd.pid,logs 目录位于 Apache 的服务器根目录下</p>| | :- | :- | :- | :- | 3 AddDefaultCharset UTF-8 ##设置站点中的网页默认使用的字符集编码,如 UTF-8、gb2312等 ||4||<p>DirectoryIndex index.html index.php ##设置网站的默认索引页(首页),可以设置多个首页文件,</p><p>以空格分开,默认的首页文件为 index.html</p>| | :- | :- | :- | :- | 5 Include conf/extra/httpd-default.conf ##包含另一个配置文件的内容,可以实现将一些特殊功能的配 置放到一个单 6 独的文件中,再使用 Include 配置项将其包含到 httpd.conf 文件中,这样便于独立进行配置功能的维护 而不影响主配置文件 7 [root@www conf]# systemctl restart httpd.service ##重启httpd服务 8 3\. **安装源码包mysql** a. **安装依赖包cmake和其他依赖包** i. **解包,配置,编译,安装** <a name="br3"></a>1 [root@www lamp]# tar zxf cmake-2.8.6.tar.gz -C /usr/src/ ##解包cmake到指定目录 2 [root@www lamp]# cd /usr/src/cmake-2.8.6 ##切换到解压cmake的目录 3 [root@www cmake-2.8.6]# ./configure && gmake && gmake install ##编译,配置,安装一起执行 4 [root@www cmake-2.8.6]# echo $? ##查看是否安装成功 5 0 ## 0就是成功 ||6||<p>[root@www cmake-2.8.6]# yum install -y ncurses-devel libaio-devel gcc gcc-c++ glibc</p><p>autoconf openssl openssl-devel</p><p>##安装依赖包 注意必须是安装MySQL之前安装</p>| | :- | :- | :- | :- | ||<p>b.</p><p>**创建mysql组,和用户**</p>| 1 [root@www cmake-2.8.6]# groupadd mysql ##创建myssql组 ||2||<p>[root@www cmake-2.8.6]# useradd -M -s /sbin/nologin -g mysql mysql ##创建mysql用户 -</p><p>M 不建立宿住目录 -s 指定登录的shell -g 指定基本组</p>| | :- | :- | :- | :- | 3 ||<p>c.</p><p>**解包**</p>| | :- | :- | 1 [root@www lamp]# tar zxf mysql-5.6.36.tar.gz -C /usr/src/ ##解压到指定的目录 ||<p>d.</p><p>**编译配置安装**</p>| | :- | :- | 1 [root@www lamp]# cd /usr/src/mysql-5.6.36/ ||2||<p>[root@www mysql-5.6.36]# cmake -DCMAKE\_INSTALL\_PREFIX=/usr/local/mysql -</p><p>DSYSCONFDIR=/etc -DDEFAULT\_CHARSET=utf8 -DDEFAULT\_COLLATION=utf8\_general\_ci -</p><p>DWITH\_EXTRA\_CHARSETS=all && make && make install</p>| | :- | :- | :- | :- | 3 cmake 指定编译工具为cmake 4 -DCMAKE\_INSTALL\_PREFIX=/usr/local/mysql 指定预安装目录为 /usr/local/mysql 5 -DSYSCONFDIR=/etc 指定生成的主配置文件存放目录 6 -DDEFAULT\_CHARSET=utf8 指定默认的字符集格式 7 -DDEFAULT\_CHARSET=utf8 ||8||<p>-DDEFAULT\_COLLATION=utf8\_general\_ci 指定默认使用的字符集校验规则:utf8\_general\_ci 是适用</p><p>于 UTF-8 字符集的通用规则</p>| | :- | :- | :- | :- | 9 -DWITH\_EXTRA\_CHARSETS=all 安装所有扩展字符集 10 make && make install 编译,安装 -DCMAKE\_INSTALL\_PREFIX= 指定安装路径目录为: -DSYSCONFDIR= 指定生成的主配置文件存放目录: -DDEFAULT\_CHARSET=utf8 指定默认的字符集格式为: <a name="br4"></a>-DDEFAULT\_COLLATION=utf8\_general\_ci 指定数据库语言校验规则: -DWITH\_EXTRA\_CHARSETS=all 安装所有扩展字符集 ||<p>e.</p><p>**安装后调整**</p>| | :- | :- | ||1||<p>[root@www mysql-5.6.36]# chown -R mysql:mysql /usr/local/mysql/ ##将生成mysql的主目的</p><p>属主和属组设置为MySQL -R 递归</p>| 2 [root@www mysql-5.6.36]# rm -rf /etc/my.cnf ##删除原来的配置文件 ||3||<p>[root@www mysql-5.6.36]# cp support-files/my-default.cnf /etc/my.cnf ##复制源码里面的</p><p>配置到/etc/下并改名为my.cnf</p>| | :- | :- | :- | :- | ||4||<p>[root@www mysql-5.6.36]# /usr/local/mysql/scripts/mysql\_install\_db --user=mysql --</p><p>basedir=/usr/local/mysql --datadir=/usr/local/mysql/data</p>| ||5||<p>##初始化数据库 --user=mysql 指定初始化数据库的用户为mysql --</p><p>basedir=/usr/local/mysql 指定MySQL的刚刚安装的目录为/usr/local/mysql</p>| 6 --datadir=/usr/local/mysql/dat 指定刚刚安装MySQL存放的数据目录/usr/local/mysql/data/ 7 [root@www mysql-5.6.36]# echo $? ##查看是否初始化成功 8 0 ||9||<p>[root@www mysql-5.6.36]# echo "PATH=$PATH:/usr/local/mysql/bin">>/etc/profile ##将</p><p>MySQL的脚本和命令追加到系统命令的搜索路径 ##全局变量</p>| | :- | :- | :- | :- | 10 [root@www mysql-5.6.36]# . /etc/profile ##重新加载环境变量 ||<p>f.</p><p>**配置启动MySQL服务**</p>| | :- | :- | ||1||<p>[root@www mysql-5.6.36]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld ##拷贝</p><p>启动脚本到开机自检的目录下并改名为mysqld</p>| 2 [root@www mysql-5.6.36]# chmod +x /etc/rc.d/init.d/mysqld ##给脚本添加可执行权限 3 [root@www mysql-5.6.36]# chkconfig --add mysqld ##添加为系统服务 4 [root@node01 mysql-5.6.36]# systemctl enable mysqld ##添加为系统开机自启 5 [root@www mysql-5.6.36]# systemctl is-enabled mysqld ##查看是否已经设置为开机自启 6 mysqld.service is not a native service, redirecting to /sbin/chkconfig. 7 Executing /sbin/chkconfig mysqld --level=5 8 enabled 9 10 [root@www mysql-5.6.36]# /etc/init.d/mysqld start ##开机MySQL服务或者使用systemctl 11 Starting MySQL.Logging to '/usr/local/mysql/data/www.kgc.cn.err'. 12 SUCCESS! |13||<p>[root@www mysql-5.6.36]# netstat -anptu|grep mysql ##查看开启的端口 3306端口</p><p>10713PID号</p>| | :- | :- | :- | |14||<p>tcp6 0 0 :::3306 :::\* LISTEN</p><p>10713/mysqld</p>| <a name="br5"></a>15 ||<p>g.</p><p>**登录MySQL服务并设置密码**</p>| | :- | :- | 1 [root@www mysql-5.6.36]# mysql -u root -p ##登录MySQL数据库 -u 用户名 -p 密码 2 Enter password: 密码默认为空回车即可 3 mysql> show databases; ##查看数据库列表 4 +--------------------+ 5 | Database | 6 +--------------------+ 7 | information\_schema | 8 | mysql | 9 | performance\_schema | 10 | test | 11 +--------------------+ 12 4 rows in set (0.00 sec) 13 mysql> set password for root@localhost=password('pwd123'); ##在数据库内设置密码 14 Query OK, 0 rows affected (0.00 sec) 15 ##mysql> set password for 用户名@localhost = password('新密码'); 数据库内设置 16 mysql> flush privileges; ##刷新权限列表 17 Query OK, 0 rows affected (0.00 sec) 18 19 mysql> exit ##退出数据库 20 Bye 21 [root@www mysql-5.6.36]# mysql -u root -p ##再次登录需要输入密码 22 Enter password: 23 [root@www mysql-5.6.36]# mysql -uroot -ppwd123 ##直接输入密码登录 |<p>4\.</p><p>**安装PHP源码包**</p>| | :- | 1 [root@www mysql-5.6.36]# yum -y remove php php-cli php-ldap php-common php-mysql 2 删除PHP的rpm相关依赖包 3 [root@www mysql-5.6.36]# yum -y install zlib zlib-devel libxml2 libxml2-devel 4 安装PHP源码包的依赖包 ||<p>a.</p><p>**安装源码包扩展工具库**</p>| | :- | :- | ||<p>i.</p><p>**数据加密工具libmcrypt、mhash、mcrypt**</p>| <a name="br6"></a>ii. **安装libmcrpyt** 1 [root@www lamp]# tar zxf libmcrypt-2.5.8.tar.gz -C /usr/src/ ##解包 2 [root@www lamp]# cd /usr/src/libmcrypt-2.5.8/ ##切换到解包的目录 3 4 [root@www libmcrypt-2.5.8]# ./configure && make && make install ##配置,编译,安装 5 [root@www libmcrypt-2.5.8]# echo $? ##查看是否成功 6 0 7 [root@www libmcrypt-2.5.8]# ln -s /usr/local/lib/libmcrypt.\* /usr/src/ ##优化路径 iii. **安装mhash** 1 [root@www lamp]# tar zxf mhash-0.9.9.9.tar.gz -C /usr/src/ ##解包 2 [root@www lamp]# cd /usr/src/mhash-0.9.9.9/ ##切换到解包的目录 3 [root@www mhash-0.9.9.9]# ./configure && make && make install ##配置,编译,安装 4 [root@www mhash-0.9.9.9]# echo $? ##查看是否安装成功 5 0 6 [root@www mhash-0.9.9.9]# ln -s /usr/local/lib/libmhash\* /usr/lib ##优化路径 7 iv. **安装mcrypt** 1 [root@www lamp]# tar zxf mcrypt-2.6.8.tar.gz -C /usr/src/ ##解包 2 [root@www lamp]# cd /usr/src/mcrypt-2.6.8/ ##切换到解包的目录 3 [root@www mcrypt-2.6.8]# export LD\_LIBRARY\_PATH=/usr/local/lib:$LD\_LIBRARY\_PATH 4 定义一个全局变量以方便查找libmcrpyt包,不定义则会无法配置 5 [root@www mcrypt-2.6.8]# ./configure && make && make install ##配置,编译,安装 6 [root@www mcrypt-2.6.8]# echo $? ##查看是否成功 7 0 v. **安装PHP** 1 [root@www lamp]# tar zxf php-5.5.38.tar.gz -C /usr/src/ ##解包 2 [root@node01 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 && make && make install 3 --prefix=/usr/local/php5 指定安装的路径 <a name="br7"></a>4 --with-mcrypt 加载新的的模块既刚刚安装的扩展工具(数据加密工具) 5 --with-apxs2=/usr/local/httpd/bin/apxs 设置 Apache HTTP Server 提供的 apxs 模块支持程序 的文件位置 6 --with-mysql=/usr/local/mysql 指定MySQL的安装目录(添加 MySQL 扩展支持) ||7||<p>--with-mysqli=/usr/local/mysql/bin/mysql\_config 指定MySQL的配置文件(支持客户机连接数据</p><p>库的模块)</p>| | :- | :- | :- | :- | 8 ---with-config-file-path=/usr/local/php5 指定存放PHP主配置文件的存放目录 9 --enable-mbstring 启用多字符集模式,以便支持中文等代码 10 --with 是添加新的模块 --enable 是启用模块 11 [root@www php-5.5.38]# echo $? ##查看是否安装成功 12 0 b. **PHP配置调整** i. **添加优化模块** **添加 ZendGuardLoader 优化模块 为了进一步提高 PHP 程序的执行效率,优化页面加载速度,可以为 PHP 添** **加 Zend 公司开发的ZendGuardLoader优化模块。若需要加密PHP代码以限制未经授权的分发, 还可以购买** **该公司的 ZendGuard 软件。添加 ZendGuardLoader 模块支持的过程如下所 述。 首先将下载的** **ZendGuardLoader 包释放,并将其中 php-5.3.x 目录下的模块文件 复制到 PHP 程序的模块文件夹** ||1||<p>[root@www lamp]# tar zxf zend-loader-php5.5-linux-x86\_64\_update1.tar.gz -C /root</p><p>##解包</p>| | :- | :- | :- | :- | 2 [root@www lamp]# cd /root/zend-loader-php5.5-linux-x86\_64/ ##切换到 指定解压目录 3 [root@www zend-loader-php5.5-linux-x86\_64]# ls ##查看所有的 优化文件 4 opcache.so README.txt ZendGuardLoader.so 5 [root@www zend-loader-php5.5-linux-x86\_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php/ ##将优化文件复制到PHP的安装目录 ii. **复制PHP主配置和主配置文件调整** **通过修改 php.ini 文件中的配置内容,可以控制 PHP 网页的执行特性,如是否允许用户上传文件、设** **置上传文件的大小限制、设置默认使用的字符集、加载额外的扩展模块等。如果没有特别要求,可以** **直接沿用默认配置,不做任何修改** ||1||<p>` `[root@www zend-loader-php5.5-linux-x86\_64]# cp /usr/src/php-5.5.38/php.ini-</p><p>development /usr/local/php5/php.ini</p>| | :- | :- | :- | :- | 2 安装好 PHP 软件包以后,服务器并不会自动创建 php.ini 配置文件,但在源码目录下提供了两个样例配 置文件,分别对应于开发环境、生产环境 3 usr/src/php-5.5.38/php.ini-development //开发版样例文件,用于学习、测试 <a name="br8"></a>4 /usr/src/php-5.5.38/php.ini-production //生产版样例文件,用于实际运营 5 [root@www ~]# vim /usr/local/php5/php.ini ||6||<p>zend\_exteension=/usr/local/php5/lib/php/ZendGuardLoader.so ##指定刚刚的解压的优</p><p>化模块路径 添加到897行后面</p>| | :- | :- | :- | :- | 7 zend\_loader.enable=1 ##开启优化模块 8 ##记得留一个空行 ||9||<p>` `680 default\_charset = "UTF-8" ##开启默认字符集格</p><p>式 680行</p>| | :- | :- | :- | :- | ||10||<p>` `783 file\_uploads = On ##允许通过 PHP 网页</p><p>上传文件 783行</p>| ||11||<p>` `792 upload\_max\_filesize = 2M ##允许上传的文件大小</p><p>限制 792行</p>| ||12||<p>` `795 max\_file\_uploads = 20 ##每个 HTTP 最多允</p><p>许请求上传的文件数 795行</p>| ||13||<p>` `660 post\_max\_size = 8M ##每次通过表单</p><p>post 提交的数据量限制 660行</p>| 14 202 short\_open\_tag = On ##允许识别 PHP 短语 法标记,即<?…?> 202行 15 16 873 extension=php\_mysqli.dll ##启用 MySQL 支持 17 912 date.timezone = Asia/Shanghai ##更改时区 18 5\. **httpd.conf配置调整** a.**要使 httpd 服务器支持 PHP 页面解析功能,需通过 LoadModule 配置项加载 PHP** **程序的模块文件,并通过 AddType 配置项添加对“.php”类型网页文件的支持。除此以外,** **还应修改 DirectoryIndex 配置行,添加 index.php 配置项,以识别常见的 PHP 首页文** **件** 1 [root@www ~]# vim /usr/local/httpd/conf/httpd.conf ##编辑httpd主配置文件 2 161 LoadModule php5\_module modules/libphp5.so ##安装PHP之后会生成此配置项 161行 3 399 AddType application/x-httpd-php .php ##添加此内容,支持PHP解析 399行 4 261 DirectoryIndex index.html index.php ##添加默认网页index.php 5 [root@www ~]# httpd -t ##检查语法格式 6 Syntax OK 7 [root@www ~]# systemctl restart httpd.service ##重启服务 6\. **测试** a. **创建静态测试网页** <a name="br9"></a>1 [root@www ~]# echo "<h1>This is html page</h1>"> /usr/local/httpd/htdocs/test1.html ||<p>b.</p><p>**创建PHP测试网页**</p>| | :- | :- | 1 [root@www ~]# vim /usr/local/httpd/htdocs/test2.php 2 <?php ##加php是长格式不加既是短格式 3 phpinfo(); ##输入PHP的默认网页 4 ?> ||<p>c.</p><p>**创建连接数据库的测试动态网页**</p>| | :- | :- | 1 [root@www ~]# vim /usr/local/httpd/htdocs/test3.php ##创建测试网页 2 <?php 3 $link=mysqli\_connect('localhost','root','pwd123'); 4 if($link) echo "The connetion is sucessfull!!"; 5 mysqli\_close($link); 6 ?> 7 ~ 8 $link 创建一个连接对象,对象名称为link 9 mysqli\_connect 调用一个函数就之前的模块 10 ('localhost','root','pwd123'); localhost 本地数据库 root 用户名 pwd123 密码 11 if($link) 使用if语句判断$link连接对象是否成功 成功则输出后面的字 12 mysqli\_close($link); 断开连接无论是否连接成功 3 phpinfo(); ##输入PHP的默认网页 4 ?> ||<p>c.</p><p>**创建连接数据库的测试动态网页**</p>| | :- | :- | 1 [root@www ~]# vim /usr/local/httpd/htdocs/test3.php ##创建测试网页 2 <?php 3 $link=mysqli\_connect('localhost','root','pwd123'); 4 if($link) echo "The connetion is sucessfull!!"; 5 mysqli\_close($link); 6 ?> 7 ~ 8 $link 创建一个连接对象,对象名称为link 9 mysqli\_connect 调用一个函数就之前的模块 10 ('localhost','root','pwd123'); localhost 本地数据库 root 用户名 pwd123 密码 11 if($link) 使用if语句判断$link连接对象是否成功 成功则输出后面的字 12 mysqli\_close($link); 断开连接无论是否连接成功 undefined ```
Apache+LNMP搭建部署
最新推荐文章于 2024-07-25 09:35:08 发布