lamp部署


目录


安装httpd

下载依赖包
[root@localhost yum.repos.d]# yum -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++
Last metadata expiration check: 0:00:52 ago on Tue 02 Aug 2022 08:28:45 PM CST.

Dependencies resolved.

 Package                Arch   Version                       Repo       Size

Installing:
 expat-devel            x86_64 2.2.5-4.el8                   base       55 k
 gcc                    x86_64 8.5.0-4.el8_5                 AppStream  23 M
 gcc-c++                x86_64 8.5.0-4.el8_5                 AppStream  12 M
 libtool                x86_64 2.4.6-25.el8                  AppStream 709 k
 openssl-devel          x86_64 1:1.1.1k-5.el8_5              base      2.3 M
 pcre-devel             x86_64 8.42-6.el8                    base      551 k
Upgrading:

.......

  pkgconf-m4-1.4.2-1.el8.noarch                                              
  pkgconf-pkg-config-1.4.2-1.el8.x86_64                                      
  zlib-devel-1.2.11-17.el8.x86_64                                            

Complete!

解压

[root@localhost local]# tar xf apr-1.7.0.tar.gz 
[root@localhost local]# tar xf apr-util-1.6.1.tar.gz 
[root@localhost local]# ls
apr-1.7.0              include
apr-1.7.0.tar.gz       lib
apr-util-1.6.1         lib64
apr-util-1.6.1.tar.gz  libexec
bin                    mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz
etc                    sbin
games                  share
httpd-2.4.54.tar.gz    src

编译三部曲

[root@localhost apr-1.7.0]# ./configure --prefix=/usr/local/apr
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
Configuring APR library
Platform: x86_64-pc-linux-gnu

[root@localhost apr-1.7.0]# make && make install
make[1]: Entering directory '/usr/local/apr-1.7.0'
/bin/sh /usr/local/apr-1.7.0/libtool --silent --mode=compile gcc -g -O2 -pthread   -DHAVE_CONFIG_H  -DLINUX -D_REENTRANT -D_GNU_SOURCE   -I./include -I/usr/local/apr-1.7.0/include/arch/unix -I./include/arch/unix -I/usr/local/apr-1.7.0/include/arch/unix -I/usr/local/apr-1.7.0/include -I/usr/local/apr-1.7.0/include/private -I/usr/local/apr-1.7.0/include/private  -o encoding/apr_encode.lo -c encoding/apr_encode.c && touch encoding/apr_encode.lo
/usr/local/apr-1.7.0/build/mkdir.sh tools
......
    /usr/bin/install -c -m 644 /usr/local/apr-1.7.0/build/${f} /usr/local/apr/build-1; /
done
/usr/bin/install -c -m 644 build/apr_rules.out /usr/local/apr/build-1/apr_rules.mk
/usr/bin/install -c -m 755 apr-config.out /usr/local/apr/bin/apr-1-config

apr-util编译三部曲

[root@localhost apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
.....
config.status: creating include/apu_want.h
config.status: creating test/Makefile
config.status: creating include/private/apu_config.h
config.status: executing default commands

[root@localhost apr-util-1.6.1]# make && make install
make[1]: Entering directory '/usr/local/apr-util-1.6.1'
/bin/sh /usr/local/apr/build-1/libtool --silent --mode=compile gcc -g -O2 -pthread   -DHAVE_CONFIG_H  -DLINUX -D_REENTRANT -D_GNU_SOURCE   -I/usr/local/apr-util-1.6.1/include -I/usr/local/apr-util-1.6.1/include/private  -I/usr/local/apr/include/apr-1    -o buckets/apr_brigade.lo -c buckets/apr_brigade.c && touch buckets/apr_brigade.lo
......
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
/usr/bin/install -c -m 644 aprutil.exp /usr/local/apr-util/lib
/usr/bin/install -c -m 755 apu-config.out /usr/local/apr-util/bin/apu-1-config

安装依赖包

[root@localhost ~]# yum -y install ncurses-devel openssl-devel openssl cmake mariadb-devel
Last metadata expiration check: 0:33:46 ago on Tue 02 Aug 2022 10:39:40 PM CST.
Package openssl-devel-1:1.1.1k-5.el8_5.x86_64 is already installed.
Package openssl-1:1.1.1k-5.el8_5.x86_64 is already installed.

Dependencies resolved.

 Package                    Arch   Version                  Repo       Size

Installing:
 cmake                      x86_64 3.20.2-4.el8             AppStream  12 M
 ......
   ncurses-c++-libs-6.1-9.20180224.el8.x86_64                                
  ncurses-devel-6.1-9.20180224.el8.x86_64                                   

Complete!

编译三部曲httpd

[root@localhost local]# tar xf httpd-2.4.54.tar.gz 
[root@localhost local]# cd httpd-2.4.54
[root@localhost httpd-2.4.54]# ./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
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
configure: 
.....
configure: summary of build options:

    Server Version: 2.4.54
    Install prefix: /usr/local/apache
    C compiler:     gcc
    CFLAGS:          -g -O2 -pthread  
    CPPFLAGS:        -DLINUX -D_REENTRANT -D_GNU_SOURCE  
    LDFLAGS:           
    LIBS:             
    C preprocessor: gcc -E
    
[root@localhost httpd-2.4.54]# make && make install
Making all in srclib
make[1]: Entering directory '/usr/local/httpd-2.4.54/srclib'
make[1]: Leaving directory '/usr/local/httpd-2.4.54/srclib'
Making all in os
make[1]: Entering directory '/usr/local/httpd-2.4.54/os'
Making all in unix
make[2]: Entering directory '/usr/local/httpd-2.4.54/os/unix'
make[3]: Entering directory '/usr/local/httpd-2.4.54/os/unix'
.................
Installing man pages and online manual
mkdir /usr/local/apache/man
mkdir /usr/local/apache/man/man1
mkdir /usr/local/apache/man/man8
mkdir /usr/local/apache/manual
make[1]: Leaving directory '/usr/local/httpd-2.4.54'

//设置环境变量
[root@localhost ~]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh
[root@localhost ~]# source /etc/profile.d/httpd.sh 
[root@localhost ~]# ln -s /usr/local/apache/include/ /usr/include/httpd
[root@localhost local]# vim /etc/man_db.conf
MANDATORY_MANPATH                       /usr/local/apache/man

启动apache

取消Servername前面的注释
[root@localhost local]# vim /etc/httpd24/httpd.conf
ServerName www.example.com:80
[root@localhost local]# apachectl start
[root@localhost local]# ss -antl
State   Recv-Q  Send-Q   Local Address:Port     Peer Address:Port  Process  
LISTEN  0       128            0.0.0.0:22            0.0.0.0:*              
LISTEN  0       128                  *:80                  *:*              
LISTEN  0       128               [::]:22               [::]:*  

安装mysql

[root@localhost ~]# yum -y install ncurses-devel openssl-devel openssl cmake mariadb-devel
Last metadata expiration check: 0:39:29 ago on Tue 02 Aug 2022 10:39:40 PM CST.
Package ncurses-devel-6.1-9.20180224.el8.x86_64 is already installed.
Package openssl-devel-1:1.1.1k-5.el8_5.x86_64 is already installed.
Package openssl-1:1.1.1k-5.el8_5.x86_64 is already installed.
Package cmake-3.20.2-4.el8.x86_64 is already installed.
Package mariadb-devel-3:10.3.28-1.module_el8.3.0+757+d382997d.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[root@localhost ~]# groupadd -r -g 306 mysql
[root@localhost ~]# useradd -rMs /sbin/nologin -g 306 -u 306 mysql
[root@localhost local]# tar xf mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz 
[root@localhost local]# ln -s mysql-5.7.39-linux-glibc2.12-x86_64/ mysql
[root@localhost local]# ll /usr/local/mysql -d
lrwxrwxrwx. 1 mysql mysql 36 Aug  2 23:28 /usr/local/mysql -> mysql-5.7.39-linux-glibc2.12-x86_64/
设置环境变量
[root@localhost local]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@localhost local]# source /etc/profile.d/mysql.sh 
[root@localhost local]# ln -s /usr/local/mysql/include/ /usr/include/mysql/
[root@localhost local]# vim /etc/ld.so.conf.d/mysql.conf
[root@localhost local]# cat /etc/ld.so.conf.d/mysql.conf 
/usr/local/mysql/lib
[root@localhost local]# ldconfig 
[root@localhost local]# vim /etc/man_db.conf 
MANDATORY_MANPATH                       /usr/local/mysql/man
建立存放目录
[root@localhost ~]# mkdir /opt/data
[root@localhost ~]# chown -R mysql.mysql /opt/data/
[root@localhost ~]# ll /opt/
total 0
drwxr-xr-x. 2 mysql mysql 6 Aug  2 23:34 data
初始化
[root@localhost ~]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/opt/data/
2022-08-02T15:37:36.145176Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2022-08-02T15:37:36.317700Z 0 [Warning] InnoDB: New log files created, LSN=45790
2022-08-02T15:37:36.348292Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2022-08-02T15:37:36.410237Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 08aab86a-1279-11ed-9071-000c291857bd.
2022-08-02T15:37:36.410895Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2022-08-02T15:37:36.637865Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2022-08-02T15:37:36.637879Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2022-08-02T15:37:36.638290Z 0 [Warning] CA certificate ca.pem is self signed.
2022-08-02T15:37:36.664064Z 1 [Note] A temporary password is generated for root@localhost: Njutr7qPgk?8

生成配置文件
[root@localhost etc]# vim/etc/my.cnf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
[mysqld]
basedir=/usr/local/mysql
datadir=/opt/data
socket=/tmp/mysql.sock
port=3306
pid-file=/opt/data/mysql.pid
user=mysql
skip-name-resolve

[root@localhost etc]# cd /usr/local/mysql
[root@localhost mysql]# ls
bin  data  docs  include  lib  LICENSE  man  README  share  support-files
[root@localhost mysql]# cd support-files/
[root@localhost support-files]# ls
magic  mysqld_multi.server  mysql-log-rotate  mysql.server
[root@localhost support-files]# cp mysql.server /etc/init.d/mysqld
[root@localhost support-files]# vim /etc/init.d/mysqld
basedir=/usr/local/mysqld
datadir=/opt/data
[root@localhost support-files]# chmod +x /etc/init.d/mysqld
启动mysql
[root@localhost support-files]# service mysql start
Starting MySQL.Logging to '/opt/data/localhost.localdomain.err'.
 SUCCESS! 
使用临时密码进入mysql
[root@localhost ~]# mysql -uroot -p
Enter password: 
.Welcome to the MySQL monitor.  Commands end with ; or /g.
Your MySQL connection id is 2
Server version: 5.7.39

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.

mysql> 
设置新密码
mysql> set password = password('liuyang123!');
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> quit
Bye
[root@localhost ~]# 


安装php

//安装依赖包
[root@localhost src]# yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libicu-devel libjpeg libjpeg-devel libpng libpng-devel openldap-devel  pcre-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel mhash mhash-devel php-mysqlnd
Extra Packages for Enterprise Linux 7 - x86_  32 kB/s | 4.7 kB     00:00    
Package libxml2-2.9.7-9.el8.x86_64 is already installed.
Package openssl-1:1.1.1k-5.el8_5.x86_64 is already installed.
Package openssl-devel-1:1.1.1k-5.el8_5.x86_64 is already installed.
..........
  readline-devel-7.0-10.el8.x86_64                                           
  xz-devel-5.2.4-3.el8.x86_64                                                
  zlib-1.2.11-17.el8.i686                                                    

Complete!
编译安装
./configure --prefix=/usr/local/php /
 --with-config-file-path=/etc /
 --enable-fpm /
 --enable-inline-optimization /
 --disable-debug /
 --disable-rpath /
 --enable-shared /
 --enable-soap /
 --with-openssl /
 --enable-bcmath /
 --with-iconv /
 --with-bz2 /
 --enable-calendar /
 --with-curl /
 --enable-exif  /
 --enable-ftp /
 --enable-gd /
 --with-jpeg /
 --with-zlib-dir /
 --with-freetype /
 --with-gettext /
 --enable-json /
 --enable-mbstring /
 --enable-pdo /
 --with-mysqli=mysqlnd /
 --with-pdo-mysql=mysqlnd /
 --with-readline /
 --enable-shmop /
 --enable-simplexml /
 --enable-sockets /
 --with-zip /
 --enable-mysqlnd-compression-support /
 --with-pear /
 --enable-pcntl /
 --enable-posix
[root@localhost php-7.4.30]# make -j $(cat /proc/cpuinfo |grep processor|wc -l)
/bin/sh /usr/src/php-7.4.30/libtool --silent --preserve-dup-deps --mode=compile cc -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -Iext/opcache/ -I/usr/src/php-7.4.30/ext/opcache/ -DPHP_ATOM_INC -I/usr/src/php-7.4.30/include -I/usr/src/php-7.4.30/main -I/usr/src/php-7.4.30 -I/usr/src/php-7.4.30/ext/date/lib -I/usr/include/libxml2 -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/src/php-7.4.30/ext/mbstring/libmbfl -I/usr/src/php-7.4.30/ext/mbstring/libmbfl/mbfl -I/usr/src/php-7.4.30/TSRM -I/usr/src/php-7.4.30/Zend    -I/usr/include -g -O2 -fvisibility=hidden -Wall -Wno-strict-aliasing -DZEND_SIGNALS    -c /usr/src/php-7.4.30/ext/opcache/ZendAccelerator.c -o ext/opcache/ZendAccelerator.lo 
/bin/sh /usr/src/php-7.4.30/libtool --silent --preserve-dup-deps --mode=compi
.......
pharcommand.inc
invertedregexiterator.inc
directorytreeiterator.inc
directorygraphiterator.inc
phar.inc

Build complete.
Don't forget to run 'make test'.
[root@localhost php-7.4.30]# make install
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/
Installing PHP CLI binary:        /usr/local/php/bin/
Installing PHP CLI man page:      /usr/local/php/php/man/man1/
Installing PHP FPM binary:        /usr/local/php/sbin/
Installing PHP FPM defconfig:     /usr/local/php/etc/
.....
Wrote PEAR system config file at: /usr/local/php/etc/pear.conf
You may want to add: /usr/local/php/lib/php to your php.ini include_path
/usr/src/php-7.4.30/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin/phar.phar
ln -s -f phar.phar /usr/local/php/bin/phar
Installing PDO headers:           /usr/local/php/include/php/ext/pdo/
[root@localhost php-7.4.30]# 
安装后配置
[root@localhost php]# echo 'export PATH=/usr/local/php/bin:$PATH' > /etc/profile.d/php.sh
[root@localhost php]# source /etc/profile.d/php.sh 
[root@localhost php-7.4.30]# which php
/usr/local/php/bin/php
[root@localhost php-7.4.30]# php -v
PHP 7.4.30 (cli) (built: Aug  3 2022 02:30:33) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
[root@localhost php]# vim /etc/ld.so.conf.d/php.conf
[root@localhost php]# cat /etc/ld.so.conf.d/php.conf
/usr/local/php/lib
[root@localhost php]# ln -s /usr/local/php/include/ /usr/include/php
[root@localhost system]# vim /lib/systemd/system/php.service
[Unit]
Description=php server daemon
After=network.target sshd-keygen.target
Wants=sshd-keygen.target

[Service]
Type=forking
ExecStart=/usr/local/php/sbin/php-fpm
ExecStop=ps -ef |grep php |grep -v grep|awk '{print$2}'|xargs kill -9
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
//配置php-fpm
[root@localhost php-7.4.30]# cp php.ini-production /etc/php.ini 
cp: overwrite '/etc/php.ini'? y
[root@localhost php-7.4.30]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@localhost php-7.4.30]# chmod +x /etc/rc.d/init.d/php-fpm 
[root@localhost php-7.4.30]#  cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
cp: overwrite '/usr/local/php/etc/php-fpm.d/www.conf'? y
//编辑php-fpm的配置文件(/usr/local/php7/etc/php-fpm.conf):
//配置fpm的相关选项为你所需要的值:
[root@localhost php-7.4.30]# vim /usr/local/php/etc/php-fpm.conf              
[root@localhost php-7.4.30]# cat /usr/local/php/etc/php-fpm.conf |tail -4
pm.max_children=50 最多同时提供50个进程提供50个并发服务
pm.start_servers=5 启动时启动5个进程
pm.min_spare_servers=2 最小空闲进程数
pm.max_spare_servers=8 最大空闲进程数
[root@localhost ~]# tail /usr/local/php/etc/php-fpm.conf
; files from a glob(3) pattern. This directive can be used everywhere in the
; file.
; Relative path can also be used. They will be prefixed by:
;  - the global prefix if it's been set (-p argument)
;  - /usr/local/php otherwise
include=/usr/local/php/etc/php-fpm.d/*.conf
pm.max_children=50
pm.start_servers=5
pm.min_spare_servers=2
pm.max_spare_servers=8

启动服务并且开机自启
[root@localhost ~]# systemctl  daemon-reload
[root@localhost ~]# systemctl  start php.service
[root@localhost ~]# systemctl  enable php.service
Created symlink /etc/systemd/system/multi-user.target.wants/php.service → /usr/lib/systemd/system/php.service.
查看服务状态
[root@localhost ~]# systemctl  status php.service
● php.service - php server daemon
   Loaded: loaded (/usr/lib/systemd/system/php.service; enabled; vendor pres>
   Active: active (running) since Wed 2022-08-03 02:46:26 CST; 48s ago
 Main PID: 247521 (php-fpm)
    Tasks: 3 (limit: 4743)
   Memory: 25.5M
   CGroup: /system.slice/php.service
           ├─247521 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
           ├─247522 php-fpm: pool www
           └─247523 php-fpm: pool www

Aug 03 02:46:26 localhost.localdomain systemd[1]: Starting php server daemon>
Aug 03 02:46:26 localhost.localdomain systemd[1]: Started php server daemon.
查看端口信息
[root@localhost ~]# ss -antl
State   Recv-Q  Send-Q    Local Address:Port     Peer Address:Port  Process  
LISTEN  0       128             0.0.0.0:22            0.0.0.0:*              
LISTEN  0       128           127.0.0.1:9000          0.0.0.0:*              
LISTEN  0       128                   *:80                  *:*              
LISTEN  0       128                [::]:22               [::]:*              
LISTEN  0       80                    *:3306                *:* 

原创文章,作者:Carrie001128,如若转载,请注明出处:https://blog.ytso.com/278590.html

(0)
上一篇 2022年8月3日
下一篇 2022年8月3日

相关推荐

发表回复

登录后才能评论