源码编译安装LAMP

    科技2025-08-21  16

    源码编译安装LAMP

    一、Apache网站服务1-1、Apache 的主要特点1-2、搭建YUM仓库1-3、编译安装HTTP服务1-3-1、安装Apache所需软件 1-4、安装环境1-4-1、编译及安装1-4-2、优化执行路径1-4-3、添加 httpd 系统服务1-4-4、建立[service].service 配置文件添加系统给服务1-4-5、httpd.conf修改配置文件 1-5、用系统的浏览器验证 二、MySQL服务2-1、安装mysql2-2、建立调整配置文件2-3、设置环境变量#### 三、PHP服务3-1、安装PHP环境3-2、下面测试数据库工作是否正常3-3、安装phpMyadmin

    一、Apache网站服务

    1-1、Apache 的主要特点

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

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

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

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

    5、运行非常稳定:Apache 服务器可用于构建具有大负载访问量的 Web 站点,很 多知名的企业网站都使用 Apache 作为 Web 服务软件。

    6、良好的安全性:Apache 服务器具有相对较好的安全性,这是开源软件共同具 有的特性。并且,Apache 的维护团队会及时对已发现的漏洞提供修补程序, 为 Apache 的所有使用者提供尽可能安全的服务器程序。

    1-2、搭建YUM仓库

    [root@localhost ~]# mount /dev/cdrom /mnt mount: /dev/sr0 写保护,将以只读方式挂载 [root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# ll 总用量 32 -rw-r--r--. 1 root root 1664 11月 23 21:16 CentOS-Base.repo -rw-r--r--. 1 root root 1309 11月 23 21:16 CentOS-CR.repo -rw-r--r--. 1 root root 649 11月 23 21:16 CentOS-Debuginfo.repo -rw-r--r--. 1 root root 314 11月 23 21:16 CentOS-fasttrack.repo -rw-r--r--. 1 root root 630 11月 23 21:16 CentOS-Media.repo -rw-r--r--. 1 root root 1331 11月 23 21:16 CentOS-Sources.repo -rw-r--r--. 1 root root 5701 11月 23 21:16 CentOS-Vault.repo [root@localhost yum.repos.d]# mkdir backup [root@localhost yum.repos.d]# mv C* backup/ [root@localhost yum.repos.d]# cp backup/CentOS-Base.repo local.repo [root@localhost yum.repos.d]# vi local.repo [centos] name=centos baseurl=file:///mnt gpgcheck=0 enabled=1 #gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 [root@localhost yum.repos.d]# yum clean all 已加载插件:fastestmirror, langpacks 正在清理软件源: centos [root@localhost yum.repos.d]# yum makecache 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile centos | 3.6 kB 00:00:00 (1/4): centos/group_gz | 166 kB 00:00:00 (2/4): centos/filelists_db | 3.2 MB 00:00:00 (3/4): centos/primary_db | 3.1 MB 00:00:00 (4/4): centos/other_db | 1.3 MB 00:00:00

    1-3、编译安装HTTP服务

    1-3-1、安装Apache所需软件

    apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz httpd-2.4.29.tar.gz ####将上面3个包传到opt目录下####

    [root@localhost ~]# cd /opt [root@localhost opt]# ll 总用量 8020 -rw-r--r-- 1 root root 1071074 8月 4 17:33 apr-1.6.2.tar.gz -rw-r--r-- 1 root root 565507 8月 4 17:33 apr-util-1.6.0.tar.gz -rw-r--r-- 1 root root 6567926 8月 4 17:33 httpd-2.4.29.tar.bz2 drwxr-xr-x. 2 root root 6 3月 26 2015 rh [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 [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

    1-4、安装环境

    [root@localhost opt]# yum -y install \ gcc \ gcc-c++ \ ###源码编译器 make \ pcre-devel \ ###下面作用是让Apache支持多种语言格式 expat-devel \ perl [root@localhost opt]# cd /opt/httpd-2.4.29/ ./configure \ --prefix=/usr/local/httpd \ ###安装路径 --enable-so \ ###开启Apache核心功能模块 --enable-rewrite \ ###防盗链用 --enable-charset-lite \ ###字符集 --enable-cgi ###通用网关接口

    配置模块解释 –prefix:指定将 httpd 服务程序安装到哪个目录下,如/usr/local/httpd –enable-so:启用动态加载模块支持,使 httpd 具备进一步扩展功能的能力。 –enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护。 –enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网 –enable-cgi:启用 CGI 脚本程序支持,便于扩展网站的应用访问能力。

    1-4-1、编译及安装

    make && make install ###先make -j3 然后make install -j3是你核心数,最大不要超过虚拟机的核心数

    1-4-2、优化执行路径

    ln -s /usr/local/httpd/conf/httpd.conf /etc/ ln -s /usr/local/httpd/bin/* /usr/local/bin/ httpd -v ###查看下HTTP版本

    1-4-3、添加 httpd 系统服务

    cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd vi /etc/init.d/httpd #chkconfig: 35 85 21 //35级别自动运行 第85个启动 第21个关闭 #description: Apache is a World Wide Web server #################### #chkconfig: 35 85 21 #description: Apache is a World Wide Web server ########################## chkconfig --add httpd ###添加为系统服务 chkconfig --list httpd ###查看http服务自启状态 该输出结果只显示Sysv服务, 并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖

    1-4-4、建立[service].service 配置文件添加系统给服务

    在/lib/systemd/system/目录下,建立一个以.service 结尾的单元(unit)配置文件, 用于控制由 systemd 管理或监控的 httpd 服务

    [root@localhost ~]# cd /lib/systemd/system/ [root@localhost system]# vim 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 ExecrReload= /bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target [root@localhost system]# systemctl start httpd.service [root@localhost system]# systemctl enable httpd.service ###开机自启http [root@localhost system]# systemctl is-enabled httpd.service ###检查HTTP单元是否启动

    1-4-5、httpd.conf修改配置文件

    vi /usr/local/httpd/conf/httpd.conf ServerName www.51xit.top:80 ###更改下 systemctl restart httpd####重启httpd服务

    1-5、用系统的浏览器验证

    netstat -anpt | grep 80 验证成功 (注意,网页默认显示内容为:/usr/local/httpd/htdocs/index.html)

    二、MySQL服务

    2-1、安装mysql

    yum -y install \ ncurses \ ncurses-devel \ bison \ cmake useradd -s /sbin/nologin mysql

    ###上传mysql-boost-5.7.20.tar.gz到opt目录下###

    cd /opt tar xf mysql-boost-5.7.20.tar.gz cd /opt/mysql-5.7.20/ 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_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=boost \ -DWITH_SYSTEMD=1

    配置选项含义 1、DCMAKE_INSTALL_PREFIX:指定将 mysql 数据库程序安装到某目录下, 如目录/usr/local/ mysql。 2、DSYSCONFDIR:指定初始化参数文件目录 3、DDEFAULT_CHARSET:指定默认使用的字符集编码,如 utf8。 4、DDEFAULT_COLLATION:指定默认使用的字符集校对规则,utf8_general_ci 是适用于 UTF-8 字符集的通用规则。 5、DWITH_EXTRA_CHARSETS:指定额外支持的其他字符集编码。

    ------注意:如果在CMAKE的过程中有报错— 当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧 ------注意:make: *** No targets specified and no makefile found. Stop.解决方法 1、wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.6.tar.gz 2.、tar zxvf ncurses-5.6.tar.gz 3、 ./configure -prefix=/usr/local -with-shared-without-debug 4、make 5、make install

    编译安装

    make && make install

    数据库目录进行权限调整

    chown -R mysql:mysql /usr/local/mysql/

    2-2、建立调整配置文件

    vi /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 [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 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_CONCAT,ANSI_QUOTES chown mysql:mysql /etc/my.cnf

    2-3、设置环境变量####

    echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile echo 'export PATH' >> /etc/profile source /etc/profile cd /usr/local/mysql/ bin/mysqld \ --initialize-insecure \ --user=mysql \ --basedir=/usr/local/mysql \ --datadir=/usr/local/mysql/data cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ systemctl enable mysqld systemctl start mysqld systemctl status mysqld netstat -anpt | grep 3306

    mysqladmin -u root -p password “abc123” //刚开始没密码是空的直接回车,然后输入密码abc123,在此确认abc123,这是在root账户下运行的

    mysql -u root -p ##这个命令敲下,提示要输入密码,这个就是刚才设置的密码abc123

    三、PHP服务

    3-1、安装PHP环境

    yum -y install \ libjpeg \ libjpeg-devel \ libpng libpng-devel \ freetype freetype-devel \ libxml2 \ libxml2-devel \ zlib zlib-devel \ curl curl-devel \ openssl openssl-devel

    上传php-7.1.10.tar.bz2包到opt目录下

    cd /opt tar xjvf php-7.1.10.tar.bz2 cd php-7.1.10 ./configure \ --prefix=/usr/local/php \ --with-apxs2=/usr/local/httpd/bin/apxs \ --with-mysql-sock=/usr/local/mysql/mysql.sock \ --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 \ --enable-zip make && make install cp php.ini-development /usr/local/php/lib/php.ini vi /usr/local/php/lib/php.ini mysqli.default_socket = /usr/local/mysql/mysql.sock date.timezone = Asia/Shanghai /usr/local/php/bin/php -m //验证安装的模块 vi /etc/httpd.conf //在合适位置新增 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps DirectoryIndex index.php index.html rm -f /usr/local/httpd/htdocs/index.html vi /usr/local/httpd/htdocs/index.php <?php phpinfo(); ?> systemctl restart httpd http://192.168.32.21/ mysqladmin -uroot -p password 'abc123' 这个地方回车后,输入是初始密码,我们这边安装的初始密码是空的。回车即可

    3-2、下面测试数据库工作是否正常

    mysql -u root -p 授权root GRANT all ON *.* TO 'root'@'%' IDENTIFIED BY 'admin123'; GRANT all ON *.* TO 'root'@'localhost' IDENTIFIED BY 'admin123'; CREATE DATABASE myadm; GRANT all ON myadm.* TO 'myadm'@'%' IDENTIFIED BY 'admin123'; GRANT all ON myadm.* TO 'myadm'@'localhost' IDENTIFIED BY 'admin123'; flush privileges; ###刷新 vi /usr/local/httpd/htdocs/index.php <?php $link=mysqli_connect('192.168.32.21','myadm','admin123'); if($link) echo "<h1>Success!!</h1>"; else echo "Fail!!"; ?>

    ########http://192.168.32.21/测试下###

    #########上传phpMyAdmin-4.7.6-all-languages.zip到opt下面#####

    3-3、安装phpMyadmin

    cd /opt unzip phpMyAdmin-4.7.6-all-languages.zip -d /opt/ mv phpMyAdmin-4.7.6-all-languages /usr/local/httpd/htdocs/myadm cd /usr/local/httpd/htdocs/myadm cp config.sample.inc.php config.inc.php vi config.inc.php $cfg['Servers'][$i]['host'] = '127.0.0.1'; //把localhost 改成IP 31行

    http://192.168.32.21/myadm 使用root 以及前面为root配置的密码登录管理系统。可以对数据库进行管理操作了

    Processed: 0.023, SQL: 8