The construction of LAMP architecture realizes the Forum web page

1. What is LAMP

1.1 introduction to lamp

LAMP architecture is one of the mature enterprise website application modes at present. It refers to a complete set of systems and related software working together, which can provide static and dynamic web site services and its application development environment. Specifically, it includes Linux operating system, Apache Web server, MySQL database server, PHP (or Perl, Python) web programming language.

1.2 description of all components

Linux (platform): as the basis of LAMP architecture, it provides the operating system used to support the Web site, which can provide better stability and compatibility with the other three components (AMP components also support Windows, UNIX and other platforms).
Apache (foreground): as the front end of LAMP architecture, it is a powerful and stable Web server program. The server directly provides users with website access, sending Web pages, pictures and other file contents.
**MySQL (background): * * as the back end of LAMP architecture, it is a popular open source relational database system. In enterprise websites, business systems and other applications, various account information, product information, customer information and business data can be stored in MySQL database. Other programs can query and change these information through SQL statements.
**PHP/Perl/Python (intermediate connection): as three programming languages for developing dynamic Web pages, it is responsible for interpreting dynamic Web page files, communicating the Web server and database system to work together, and providing the development and running environment of Web applications** PHP is a widely used open source multi-purpose scripting language, which can be embedded in HTML, especially suitable for Web application development.

The installation sequence is Linux, Apache, MySQL and PHP in turn. The installation of PHP environment is generally put at the end, and is responsible for communicating the Web server and database system to work together.

2. Installing Apache services

2.1 turn off the firewall

2.2 installing dependent packages

yum -y install \
gcc \							#C language compiler
gcc-c++ \						#C + + compiler
make \							#Source code compiler (source code to binary file)
pcre \							#pcre is a perl function library, including perl compatible regular expression library
pcre-devel \                    #perl interface development package
expat-devel \                   #It is used to support the website to parse HTML and XML files
perl                            #perl compiler

2.3 transfer the software packages required to install Apache to the / opt directory

3. Install environment dependent packages

gcc 				#C language compiler
gcc-c++ 			#C + + compiler
make 				#Source code compiler (source code to binary file)
pcre 				#pcre is a perl function library, including perl compatible regular expression library
pcre-devel          #perl interface development package
expat-devel         #It is used to support the website to parse HTML and XML files
perl                #perl compiler

 

4. Unzip three compressed packages

5. Configuration software module

mv apr-1.6.2 /opt/httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 /opt/httpd-2.4.29/srclib/apr-util
cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \		#Specify the path where the httpd service program will be installed
--enable-so \					#Enable dynamic loading module support to enable httpd to further expand its functions
--enable-rewrite \				#Enable the web address rewriting function for website optimization, anti-theft chain and directory migration maintenance
--enable-charset-lite \			#Start character set support to support pages encoded with various character sets
--enable-cgi					#Enable CGI (general Gateway Interface) script program support to facilitate the external expansion of application access capability of the website

 

6. Compilation and installation

make							#make -j 2 means to open 2 cores and compile at the same time
make install

 

7. Optimize the configuration file path, and put the executable program file of httpd service into the directory of path environment variable for system identification

ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/

 

8. Add httpd system service

① Method 1:

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd		#Used for service management
chmod +x /etc/init.d/httpd
vi /etc/init.d/httpd
#!/bin/bash												#Insert a new line before the first line and add these three lines
# chkconfig: 35 85 21									#Level 35 automatic operation, 85th start, 21st close
# description: Apache is a World Wide Web server
chkconfig --add httpd     		#Add httpd service to service manager
systemctl start httpd.service
 or
service httpd start

 

② Method 2:

vim /lib/systemd/system/httpd.service
[Unit]
Description=The Apache HTTP Server						#describe
After=network.target									#Describe service category
[Service]
Type=forking											#Background operation mode
PIDFile=/usr/local/httpd/logs/httpd.pid					#PID file location
ExecStart=/usr/local/bin/apachectl $OPTIONS				#Start service
ExecReload=/bin/kill -HUP $MAINPID						#According to PID overload configuration
[Install]
WantedBy=multi-user.target
systemctl start httpd.service
systemctl enable httpd.service

 

9. Modify / etc / httpd Conf service configuration file


10. Browser access verification

11. Use domain name access

3, Manually compile mysql database

1. Transfer the software package required to install mysql to the / opt directory

2. Install environment dependent packages

yum -y install \
gcc \
gcc-c++ \
ncurses \				#Dynamic library of graphic interactive function under character terminal
ncurses-devel \			#ncurses development kit
bison \					#Parser
cmake					#mysql needs to be compiled and installed with cmake

 

3. Configuration software module

tar zxvf mysql-5.7.17.tar.gz
tar zxvf boost_1_59_0.tar.gz
cd /opt
mv boost_1_59_0 /usr/local/boost		#rename
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								

 

  • Storage engine options:
    • MYISAM, MERGE, MEMORY, and CSV engines are compiled into the server by default and do not need to be explicitly installed.
    • Statically compile a storage engine to the server, using - DWITH_engine_STORAGE_ENGINE= 1
    • Available storage engine values are: archive, Blackhole, expand, federated, innobase (InnoDB), partition (partitioning support), and PERFSCHEMA (Performance Schema)
  • be careful:
    • If an error is reported in the process of CMAKE, after the error is solved, you need to put cmakecache in the source directory Txt file is deleted, and then CMAKE is again. Otherwise, the error remains the same

4. Compilation and installation

make && make install

 
  • 1

5. Create mysql user

useradd -M -s /sbin/nologin  mysql

 
  • 1

6. Modify mysql configuration file

vim /etc/my.cnf								#Delete the original configuration item and add the following content again
[client]									#Client settings
port = 3306
socket = /usr/local/mysql/mysql.sock			
[mysql]										#Server settings
port = 3306
socket = /usr/local/mysql/mysql.sock
auto-rehash									#Turn on the automatic completion function
[mysqld]									#Service global settings
user = mysql       							#Set management user
basedir=/usr/local/mysql					#Specify the installation directory of the database
datadir=/usr/local/mysql/data				#Specify the storage path of the database file
port = 3306									#Specify port
character-set-server=utf8					#Set the encoding format of the server character set to utf8
pid-file = /usr/local/mysql/mysqld.pid		#Specify pid process file path
socket=/usr/local/mysql/mysql.sock			#Specify database connection file
bind-address = 0.0.0.0						#Set the listening address. 0.0.0.0 means that all IP addresses are allowed. If multiple IP addresses are allowed, they should be separated by spaces
skip-name-resolve							#Disable DNS resolution
max_connections=2048						#Set the maximum number of mysql connections
default-storage-engine=INNODB				#Specify the default storage engine
max_allowed_packet=16M						#Set the maximum packet size received by the database
server-id = 1								#Specify service ID number

7. Change the primary group of mysql installation directory and configuration file

chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

 

8. Set path environment variable

echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile	
source /etc/profile

 

9. Initialize database

cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \				#Generation initialization password is null
--user=mysql \                      #Specify administrative users
--basedir=/usr/local/mysql \        #Specify the installation directory of the database
--datadir=/usr/local/mysql/data		#Specify the storage path of the database file

 

10. Add mysqld system service

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/		#For systemctl service management
systemctl daemon-reload         #Refresh recognition     
systemctl start mysqld.service  #Open service
systemctl enable mysqld         #Power on self start
netstat -anpt | grep 3306       #View port

 

11. Modify the login password of mysql and authorize remote login

mysqladmin -u root -p password "abc123" 	#Set the password to abc123 for the root account, and the prompt is the original password (empty)
mysql -u root -p
grant all privileges on *.* to 'root'@'%' identified by 'abc123';
#The root user is authorized to log in remotely at all terminals with the password abc123, and has operation authority on all databases and tables
show databases;			#View existing databases

 

4, Manually compile and install PHP

1. Transfer the software package required to install PHP to the / opt directory

2. Install GD library and Gd library associated programs to process and generate pictures


3. Configuration software module

tar jxvf php-7.1.10.tar.bz2
cd /opt/php-7.1.10/
./configure \
--prefix=/usr/local/php7 \							#Specify the path where the PHP program will be installed
--with-apxs2=/usr/local/httpd/bin/apxs \			#Specifies the file location of the apxs module support program provided by the Apache httpd service
--with-mysql-sock=/usr/local/mysql/mysql.sock \		#Specify the storage path of mysql database connection file
--with-config-file-path=/usr/local/php7				#Set the configuration file for PHP Where ini will be stored
--with-mysqli \										#add to MySQL Extended support #mysqli extension technology can not only call MySQL stored procedures and handle MySQL transactions, but also make accessing the database more stable
--with-zlib \										#Support zlib function and provide data compression
--with-curl \										#Enable curl extension function to realize HTTP Get download and Post request
--with-gd \											#Activate gd library support
--with-jpeg-dir \									#Activate jpeg support
--with-png-dir \									#Activate png support
--with-freetype-dir \
--with-openssl \
--enable-mbstring \									#Enable multi byte string function to support Chinese and other codes
--enable-xml \										#Open extensible markup language module
--enable-session \									#conversation
--enable-ftp \										#Text transfer protocol
--enable-pdo \										#function library
--enable-tokenizer \								#Token interpreter
--enable-zip										#ZIP compression format

 

4. Compilation and installation

make && make install

 
  • 1

5. Copy the template file as the main configuration file of PHP and modify it

cp /opt/php-7.1.10/php.ini-development /usr/local/php7/php.ini	
#Use PHP. PHP when testing the environment Ini development file, while using PHP in the production environment Ini production file
vim /usr/local/php7/php.ini
--1170 that 's ok--modify
mysqli.default_socket = /usr/local/mysql/mysql.sock
--939 that 's ok--Uncomment, modify
date.timezone = Asia/Shanghai

 

6. Optimization: put PHP executable program files into the directory of path environment variables for system identification

7. Modify the configuration file of httpd service to make apache support PHP```

vim /etc/httpd.conf 
--393 that 's ok--Insert the following
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
--255 that 's ok--Modify home page file name settings
DirectoryIndex index.html index.php

– - check whether the module supporting php7 exists – –
LoadModule php7_module modules/libphp7.so

8. Validate PHP test page

rm -rf /usr/local/httpd/htdocs/index.html    #Delete default static homepage file
vim /usr/local/httpd/htdocs/index.php        #Write dynamic home page file
<?php
phpinfo();
?>
systemctl restart httpd.service              #Restart service
 Browser access
http://192.168.184.80

 

5, Use LAMP to build a forum

1. Complete the construction of LAMP

2. Create database and authorize

3. Upload and unzip the forum zip


4. Change the owner of the forum directory

ps aux							#The user name of the forum process is daemon
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

 


5. Browser access verification

6. Forum background administrator page

Keywords: Linux

Added by PJSheltrum on Thu, 03 Feb 2022 00:23:40 +0200