目录
一.LAMP介绍
LAMP 架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和 相关软件,能够提供动态 Web 站点服务及其应用开发环境。LAMP 是一个缩写词,具 体包括 Linux 操作系统、Apache 网站服务器、MySQL 数据库服务器、PHP(或 Perl、 Python)网页编程语言。本章将以源码编译的方式搭建 LAMP 环境,能够满足企业定 制化的需求。 在构建 LAMP 平台时,各组件的安装顺序依次为 Linux、Apache、MySQL、PHP。 其中 Apache 和 MySQL 的安装并没有严格的顺序;而 PHP 环境的安装一般放到最后, 负责沟通 Web 服务器和数据库系统以协同工作。
二.YUM设置
如果yum可以正常使用,直接在线安装以下各种编译工具就可以下一步了。
yum -y install \ gcc \ #C语言编译器 gcc-c++ \ #C++编译器 make \ #源代码编译器 pcre-devel \ #pcre是一个perl函数库,包括perl 兼容正则表达式 expat-devel \ #perl的接口开发包 perl \ #支持网站解析HTML,XML文件 lbzip2 #perl语言编译器
如果不能正常使用yum,需要先重新配置Yum源再进行上面的步骤。重新配置方法可以尝试下面的(这里修改为阿里源)
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo 安装wget yum install -y wget 备份本地源的配置文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak 从阿里云下载新的配置文件 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 更新epel仓库 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 更新缓存 yum makecache 安装常用小工具 yum install -y net-tools
三.编译安装HTTP服务
安装Apache所需软件
apr-1.6.2.tar.gz
apr-util-1.6.0.tar.gz
httpd-2.4.29.tar.gz
1.将上述三个软件包上传至根下的opt目录
[root@localhost opt]# cd /opt #进入/opt目录下 [root@localhost opt]# ll #查看 [root@localhost opt]# apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2
2.解压软件包,并将apr-1.6.2 移动到httpd-2.4.29/srclib/apr目录下、将apr-util-1.6.0移动到httpd-2.4.29/srclib/apr-util目录下
[root@localhost opt]# tar xf apr-1.6.2.tar.gz [root@localhost opt]# tar xf apr-util-1.6.0.tar.gz [root@localhost opt]# tar xf httpd-2.4.29.tar.bz2 //命令执行失败可能是应为没有bzip2,yum -y install bzip2下载一个再执行就解决了 [root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr [root@localhost opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
3. 配置环境依赖,编译及安装
[root@localhost opt]# cd /opt/httpd-2.4.29/ #执行配置 ./configure \ --prefix=/usr/local/httpd \ --enable-so \ --enable-rewrite \ --enable-charset-lite \ --enable-cgi #编译,安装 make -j 2 && make install # make -j 2 的2是你核心数,最大不要超过虚拟机的核心数(越多这一 步完成速度越快)
4.安装过后,为apache配置文件和命令创建软连接 。
# 优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别 # 这两条命令的实际效果是使得Apache服务器能够更好地融入到整个系统环境中,提高了系统的可移植性、 可维护性和可用性 ln -s /usr/local/httpd/conf/httpd.conf /etc/ ln -s /usr/local/httpd/bin/* /usr/local/bin/
5. 配置apache服务,完成后检查配置并启动服务。
#以centos7为例 vim /lib/systemd/system/httpd.service [Unit] Description=The Apache HTTP Server After=network.target [Service] Type=forking PIDFile=/usr/local/httpd/logs/httpd.pid ExecStart=/usr/local/bin/apachectl $OPTIONS ExecReload=/bin/kill -HUP $MAINPID # 检查语法 httpd -t 或 apachectl -t # 启动服务 systemctl start httpd.service netstat -anpt | grep 80
四.安装Mysql
提醒:安装mysql,服务器内存必须4G以上 1. 安装软件依赖yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake
2.上传mysql安装包,进行解压
tar xf mysql-5.7.17.tar.gz -C /opt # Boost 1.59.0是一个开源的C++库,它为C++标准库提供了广泛的扩展 tar xf boost_1_59_0.tar.gz -C /usr/local/ mv /usr/local/boost_1_59_0 /usr/local/boost
3.配置相关文件,编译及安装
注意:安装mysql报错基本都是内存不足造成 可以试下 echo 1 > /proc/sys/vm/drop_caches #清除缓存如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧。cd /opt/mysql-5.7.17/ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ -DSYSCONFDIR=/etc \ -DSYSTEMD_PID_DIR=/usr/local/mysql \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DWITH_BOOST=/usr/local/boost \ -DWITH_SYSTEMD=1 #编译及安装 make -j 2 && make install
创建普通用户管理mysql
# 创建普通用户管理mysql useradd -s /sbin/nologin mysql chown -R mysql:mysql /usr/local/mysql/ chown mysql:mysql /etc/my.cnf
#修改配置文件 vim /etc/my.cnf [client] port = 3306 default-character-set=utf8 socket=/usr/local/mysql/mysql.sock [mysql] port = 3306 default-character-set=utf8 socket=/usr/local/mysql/mysql.sock auto-rehash [mysqld] user = mysql basedir=/usr/local/mysql datadir=/usr/local/mysql/data port = 3306 character-set-server=utf8 pid-file = /usr/local/mysql/mysqld.pid socket=/usr/local/mysql/mysql.sock bind-address = 0.0.0.0 skip-name-resolve max_connections=2048 default-storage-engine=INNODB max_allowed_packet=16M server-id = 1 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_ VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_C ONCAT,ANSI_QUOTES
4. 设置环境变量,方便调用命令
#设置环境变量,方便调用mysql命令 echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile source /etc/profile
5. 初始化数据库,设置服务
#初始化数据库 cd /usr/local/mysql/bin/ ./mysqld \ --initialize-insecure \ --user=mysql \ --basedir=/usr/local/mysql \ --datadir=/usr/local/mysql/data #Mysql服务 cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ systemctl daemon-reload #刷新识别 systemctl start mysqld.service #开启服务 systemctl enable mysqld #开机自启动 netstat -anpt | grep 3306 #查看端口 # 给root账号设置密码 mysqladmin -u root -p password "123456" # 直接回车 # root远程访问权限 mysql -uroot -p mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; mysql> flush privileges;
五.安装PHP环境
1.安装依赖,解压源码包#安装GD库和GD库关联程序,用来处理和生成图片 yum -y install \ gd \ libjpeg libjpeg-devel \ libpng libpng-devel \ freetype freetype-devel \ libxml2 libxml2-devel \ zlib zlib-devel \ curl curl-devel \ openssl openssl-devel cd /opt tar zxvf php-7.1.24.tar.gz
2.配置相关文件,编译及安装
cd /opt/php-7.1.24/ ./configure \ --prefix=/usr/local/php7 \ --with-apxs2=/usr/local/httpd/bin/apxs \ --with-mysql-sock=/usr/local/mysql/mysql.sock \ --with-config-file-path=/usr/local/php7 \ --with-mysqli \ --with-zlib \ --with-curl \ --with-gd \ --with-jpeg-dir \ --with-png-dir \ --with-freetype-dir \ --with-openssl \ --enable-mbstring \ --enable-xml \ --enable-session \ --enable-ftp \ --enable-pdo \ --enable-tokenizer make -j 2 && make install
#php配置文件 #复制模板文件,并进行修改 cp /opt/php-7.1.24/php.ini-development /usr/local/php7/php.ini vim /usr/local/php7/php.ini # 1170行--修改 mysqli.default_socket = /usr/local/mysql/mysql.sock # 939行--取消注释,修改 date.timezone = Asia/Shanghai #优化把 PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别 ln -s /usr/local/php7/bin/* /usr/local/bin/
3.修改 apache 配置,让其支持 php
# 修改Apache配置文件让Apache支持PHP vim /etc/httpd.conf # 添加index.php //255,256,257为文件内行号 255 <IfModule dir_module> 256 DirectoryIndex index.html index.php 257 </IfModule> # 在392行下方插入一下内容,让Apache可以支持.php的网页文件 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps ##检查156行默认支持php7的模块是否存在 LoadModule php7_module modules/libphp7.so
4.测试php网页
#创建、编辑php页面文件 # rm -rf /usr/local/httpd/htdocs/index.html vim /usr/local/httpd/htdocs/index.php <?php phpinfo(); ?> #重启服务 systemctl restart httpd.service
在网页测试 “http://192.168.111.5/index.php”(IP改成自己的)六.部署论坛
1.数据库准备
mysql -u root -p mysql> CREATE DATABASE bbs; # 把bbs数据库里面所有表的权限授予给bbsuser,并设置密码 mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123'; # 刷新数据库 mysql> flush privileges;
2.解压
# 解压论坛压缩包 unzip Discuz_X3.4_SC_UTF8.zip -d /opt/dis #上传站点更新包 cd /opt/dis/dir_SC_UTF8 cp -r upload/ /usr/local/httpd/htdocs/bbs #切换论坛目录 cd /usr/local/httpd/htdocs/bbs #更改论坛目录属主 chown -R daemon ./config chown -R daemon ./data chown -R daemon ./uc_client chown -R daemon ./uc_server/data
web安装界面,访问地址:http://192.168.111.5/bbs/install/如遇到报错信息如下 Fatal error: Uncaught Error: Call to undefined function set_magic_quotes_runtime() in /data/www/install/index.php:12 Stack trace: #0 {main} thrown in /data/www/install/index.php on line 12 解决方法 #致命错误:未捕获错误:未定义的函数的调用set_magic_quotes_runtime(),在这个文件的第12行,找到该路径下的index.php这个文件打开,查找set_magic_quotes_runtime #切换目录 cd /usr/local/httpd/htdocs/bbs/install vim index.php进行编辑 //把 @set_magic_quotes_runtime(0); //替代成 @ini_set("magic_quotes_runtime",0)
问题解决后,应该可以访问论坛
七.其他
编写php代码,测试数据库工作是否正常mysql -u root -p CREATE DATABASE sky; GRANT all ON sky.* TO 'skyuser'@'%' IDENTIFIED BY 'admin123'; flush privileges;
vim /usr/local/http/htdocs/index.php <?php $link=mysql_connect('192.168.226.128','skyuser','admin123'); if($link) echo "<h1>Success!!</h1>"; else echo "Fail!!"; mysql_close(); ?>