Year-end benefits: PHP7 + Apache2.4 + MySQL5.6 source code compilation and installation, Environment configuration, build your own LAMP environment, php7apache2.4
PHP 7 is out. Are you still playing with PHP5?
MySQL5.6 came out early. Are you still playing MySql5.2?
Apache2.4 has come out early. Are you still playing Apache2.2?
I am willing to build the environment for reference. Here is the installation of the source code, what one-click installation package, what yum installation, and what rpm installation all skipped (I am a self-abuse, just like installing software in windows, I do not like to install it in the default location, that is, drive C. Otherwise, the system disk will pop up)
Before installation, make sure that PHP is installed at the end. Before installing any software, make sure that the library on which it depends is installed.
(Centos6.4)
First install apache2.4
Go to apache official website to download the latest http://httpd.apache.org/download.cgi httpd-2.4.18.tar.gz
Decompress the package
tar -zxvf httpd-2.4.18.tar.gz
Go to the decompressed directory
cd httpd-2.4.18
First, do not rush to install it. First, make sure that the library on which it depends is available. How can I check whether the software is installed (rpm-q xxx ), if no dependency is installed, install it. (I usually install the dependency library directly using yum by default, so that you do not need to know the installation path of the dependency library during software installation, saving a lot of trouble)
These installation packages are: zlib-devel pcre apr-util
Before the installation, I encountered the problem that yum could not access the source. Here we specify the yum source as Netease 163. For details about how to specify it, see http://mirrors.163.com/.help/centos.html. detailed steps are provided.
Then install zlib-devel pcre apr-util (apr-util). During installation, I found that the yum installation is not available and the class library cannot be found during compilation, therefore, the author uses the source code installation method)
yum install zlib-devel pcre-devel pcre
Then we use the source code to install apr-util these two libraries, the source code installation package of these two libraries can be found in (http://apr.apache.org/download.cgi)
Download separately
wget http://mirrors.noc.im/apache//apr/apr-1.5.2.tar.gzwget http://mirrors.noc.im/apache//apr/apr-util-1.5.4.tar.gz
Decompress the package and install the package separately. Make sure that gcc-c ++ is installed. If not, use yum install gcc-c ++)
tar -zxvf apr-1.5.2.tar.gzcd apr-1.5.2./configure --prefix=/usr/local/apr/
make && make install
tar -zxvf apr-util-1.5.4.tar.gz cd apr-util-1.5.4./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr/make && make install
Install and configure Apache. You can use
./configure --help
Check which parameters can be configured during installation. Next we will configure some parameters and check them.
./configure \ --prefix=/usr/local/apache/ \ --with-apr=/usr/local/apr/ \ --with-apr-util=/usr/local/apr-util/ \ --enable-so \ --enable-deflate=shared \ --enable-expires=shared \ --enable-rewrite=shared \ --enable-static-support
Check for no errors and start compilation and installation.
make && make install
Then, a long wait, about half an hour...
After installation, go to the installation directory and enable the apache service.
cd /usr/local/apache/bin/./apachectl start
Ah, an error is reported.
AH00558: httpd: cocould not reliably determine the server's fully qualified domain name, using localhost. localdomain. Set the 'servername' directive globally to suppress this message
No serverName in the configuration file, so add ServerName in httpd. conf.
Vim/usr/local/apache/conf/httpd. conf # Add ServerName localhost
Restart apache and check if everything is normal.
Okay, this is a big success. apache2.4 has been installed.
Now let's start installing mysql.
Download the mysqlsource code installation package. Here we use mysql-5.6.28.tar.gz. You can download this package from the official website and decompress it.
tar -zxvf mysql-5.6.28.tar.gz
In the old saying, do not rush to install. First, check whether the mysql dependent class library is installed. If not, install it.
yum -y install make gcc-c++ cmake bison-devel ncurses-devel
Go to the decompressed mysql directory, and you will be surprised to find that there is no configure file. This is mainly because the new version of mysql uses cmake for installation, so there is no previous configure file
Now we will use cmake for installation and configuration
cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/usr/local/mysql/data \-DSYSCONFDIR=/etc \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_MEMORY_STORAGE_ENGINE=1 \-DWITH_READLINE=1 \-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \-DMYSQL_TCP_PORT=3306 \-DENABLED_LOCAL_INFILE=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DEXTRA_CHARSETS=all \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci
Important points above
'-Dcmake_install_prefix' is the installation directory.
'-DMYSQL_DATADIR' is the data file storage directory.
'-Dsysconfdir' configuration file directory
'-DMYSQL_UNIX_ADDR' SOCK file storage directory
'-DMYSQL_TCP_PORT' port number
After the check is correct, the compilation and installation will begin.
make && make install
Then, wait for half an hour...
After everything is ready, we need to ensure that there are mysql groups and mysql users
cat /etc/group|grep 'mysql'cat /etc/passwd|grep 'mysql'
Add if no
groupadd mysqluseradd -g mysql mysql
Change the owner of the '/usr/local/mysql' directory to mysql.
chown -R mysql:mysql /usr/local/mysql
At this time, the installation is complete, but there is no data in mysql (even if there is no data in the system), then you need to execute the built-in script to initialize mysql Data
/usr/local/mysql/scripts/mysql_install_db \--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
After execution, you will find that some files are added to the/usr/local/mysql/data Directory, which is the mysql data file.
Start mysql. Note that the configuration file specified above is located in the '/etc' directory, but for convenience, to put the mysql configuration file in '/usr/local/mysql/', we need to put '/etc/my. conf' change the name
mv /etc/my.cnf /etc/my.cnf.bak
If mysql cannot be found in the '/etc' directory, it will go down to '$ basedir', that is, the'/usr/local/mysql/'directory.
At this time, the installation of mysql is complete, and the following will be started, you will find that the use
/usr/local/mysql/bin/mysql start
Unable to start. Error:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql. sock' (2)
I couldn't do anything before, even if I established '/var/lib/mysql. sock', I finally realized that it wasn't how to start it,
/usr/local/mysql/support-files/mysql.server start
Then, test
/usr/local/mysql/bin/mysql -u rootshow databases;
Now, mysql is successfully installed!
The last step is to install PHP7, which is the most exciting time.
First, you need to download PHP7, which can be downloaded on the official website, and then decompress it. The command is the same as the one above (I use PHP7.0.2 here)
The dependency package must be installed first.
Php-mcrypt libmcrypt-devel autoconf freetype gd unzip SRC libmcrypt libpng-devel libjpeg libxml2 libxml2-devel zlib curl-devel
A bunch of Dependencies
yum -y install php-mcrypt libmcrypt libmcrypt-devel autoconf freetype gd jpegsrc libmcrypt libpng libpng-devel libjpeg libxml2 libxml2-devel zlib curl curl-devel
./configure --prefix=/usr/local/php/ --with-apxs2=/usr/local/apache/bin/apxs --enable-mbstring--with-curl --with-gd --enable-fpm --enable-mysqlnd --with-pdo-mysql=mysqlnd --with-config-file-path=/usr/local/php/etc/ --with-mysqli=mysqlnd --with-mysql-sock=/var/lib/mysql/mysql.sock
The above configuration supports many things during compilation. You can add them as needed, but there is a basic need to be configured.
-- Prefix installation directory
-- Location of the with-apxs2 apache File
-- With-mysql-sock =/var/lib/mysql. sock mysql sock file address
-- Enable-mbstring supports mbstring
-- With-curl supports curl
-- With-gd supports gd
-- Enable-fpm supports fpm
-- Enable-mysqlnd-- With-pdo-mysql pdo support
Check whether there is any error, and you can install it. Of course, if there is an error and the number of dependencies is not installed, install the relevant dependent libraries in sequence as prompted.
Then, compile and install the SDK.
make && make install
After a long wait of half an hour ....
After the installation is complete, copy the configuration file in the source code package to the PHP installation directory. The source code package contains two php configurations. ini-development php. ini-production: You can see the name. One is the development environment and the other is the production environment. Here we will copy the development environment
cp php.ini-development /usr/local/php/etc/php.ini
At this point, the last job has not been done, that is, let apache parse the PHP file and add
Addtype application/x-httpd-php .php .phtml
Then restart apache
/usr/local/apache/bin/apachectl restart
Add test. php to the/usr/local/apache/htdocs/directory.
<?phpinfo();
We started to access localhost/test. php and then showed an exciting picture.
By now, all your LAMP environments of the latest version have been successfully built !!!!
Next I will talk a little bit about it. Sometimes you need to add extensions for php. If you get two dll files in windows and change php. ini to OK, but it won't work in centos, and you have to compile them. In this way, if you re-compile PHP, the author will be insulted. What we will talk about here is that you can add extensions for PHP without re-compiling PHP.
In this example, we want to install openssl extensions. The openssl directory will be available under your source code installation package ext to enter this directory.
First, call the compiled phpize.
/usr/local/php/bin/phpize
An error is reported.
Cannot find config. m4.
Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module
Okay, then we will copy config0.m4 in this directory to config. m4.
cp config0.m4 config.m4
Then execute again
/usr/local/php/bin/phpize
Hey, this is OK. After completing this process, you will find some more files in it, including the configure file. This is what we want.
./configure \--with-php-config=/usr/local/php/bin/php-config
After compilation, install
make && make install
This is where you will find the so file under your extension directory (if the extension directory is not specified, in/usr/local/php/lib/php/extensions/no-debug-zts-xxx)
Add the extension to php. ini.
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/openssl.so
Restart apache and access test. php again. The extension will be installed.
Okay. Here the installation of LAMP is complete. In fact, the installation is not very complicated. The complicated part is various dependencies. It is really drunk. There are various dependencies !!!!