php Mysql source code installation method: 1. Install dependent packages through yum and compile and install the mysql source code; 2. Install the PHP source code through the "yum install" command and modify the configuration; 3. Install nginx source code and test the installation results That’s it.
The operating environment of this article: redhat6.5 system, PHP5.6, Dell G3 computer.
php mysql source code installation tutorial
mysql and php source code compilation and installation
mysql source code compilation and installation
Install dependency packages:
yum install cmake-2.8.12.2-4.el6.x86_64.rpm gcc-c++ ncurses-devel gcc -y
[root@server2 ~]# lsanaconda-ks.cfg haproxy-1.6.11.tar.gz lamp nginx drbd-8.4.3 heartbeat-3.0.4-2.el6.x86_64.rpm mysql-5.7.11 php-5.6.20.tar.bz2 drbd-8.4.3.tar.gz heartbeat-libs-3.0.4-2.el6.x86_64.rpm mysql-boost-5.7.11.tar.gz rpmbuild [root@server2 ~]# tar zxf mysql-boost-5.7.11.tar.gz [root@server2 ~]# cd mysql-5.7.11/
- Compilation parameters:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #安装目录 -DMYSQL_DATADIR=/usr/local/mysql/data \#数据库存放目录 -DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \ #Unix socket 文件路径-DWITH_MYISAM_STORAGE_ENGINE=1 \#安装 myisam 存储引擎 -DWITH_INNOBASE_STORAGE_ENGINE=1 \#安装 innodb 存储引擎 -DWITH_ARCHIVE_STORAGE_ENGINE=1 \#安装 archive 存储引擎 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \#安装 blackhole 存储引擎 -DWITH_PARTITION_STORAGE_ENGINE=1 \#安装数据库分区 -DENABLED_LOCAL_INFILE=1 \#允许从本地导入数据 -DWITH_READLINE=1 \#快捷键功能 -DWITH_SSL=yes \#支持 SSL -DDEFAULT_CHARSET=utf8 \#使用 utf8 字符 -DDEFAULT_COLLATION=utf8_general_ci \#校验字符 -DEXTRA_CHARSETS=all \#安装所有扩展字符集 -DMYSQL_TCP_PORT=3306 \#MySQL 监听端口
[root@server2mysql-5.7.11]#cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/usr/local/mysql/data \-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DENABLED_LOCAL_INFILE=1 \-DWITH_READLINE=1 -DWITH_SSL=yes \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DEXTRA_CHARSETS=all -DMYSQL_TCP_PORT=3306 \-DWITH_BOOST=boost/boost_1_59_0/[root@server2mysql-5.7.11]make [root@server2mysql-5.7.11]make install
[root@server1 support-files]# cp /etc/my.cnf /etc/my.cnf.bak #备份[root@server1 support-files]# cp my-default.cnf /etc/my.cnf #创建新的my.cnf文件[root@server1 support-files]# vim /etc/my.cnf 18 basedir = /usr/local/lnmp/mysql 19 datadir = /usr/local/lnmp/mysql/data 20 port = 3306 21 # server_id = ..... 22 socket = /usr/local/lnmp/mysql/data/mysql.sock [root@server1 support-files]# cp mysql.server /etc/init.d/mysqld #将脚本复制到启动脚本目录下[root@server1 mysql]# chmod +x /etc/init.d/mysqld #给与脚本执行权限[root@server1 mysql]# groupadd -g 27 mysql #创建mysql组[root@server1 mysql]# useradd -M -s /sbin/nologin -d /usr/local/lnmp/mysql/data -u 27 mysql -g mysql #创建mysql用户[root@server1 mysql]# chown mysql:mysql -R . #更改目录下的所有文件所有者为nysql[root@server1 mysql]# mysqld --verbose --help | grep 'insecure' #过滤初始化需要用到的参数 --initialize-insecure insecure transport will be rejected. Secure transports initialize-insecure FALSE [root@server1 mysql]# mysqld --initialize-insecure --user=mysql2017-09-26T03:54:01.520645Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).2017-09-26T03:54:01.521056Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_pISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.2017-09-26T03:54:01.521075Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set.2017-09-26T03:54:01.528325Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting. #报错data目录下有数据2017-09-26T03:54:01.529162Z 0 [ERROR] Aborting [root@server1 mysql]# cd data/[root@server1 data]# lsauto.cnf client-cert.pem ibdata1 ibtmp1 mysql.sock private_key.pem server1.pid sys ca-key.pem client-key.pem ib_logfile0 mysql mysql.sock.lock public_key.pem server-cert.pem ca.pem ib_buffer_pool ib_logfile1 mysqld_safe.pid performance_schema server1.err server-key.pem [root@server1 data]# rm -fr * #删除data下数据[root@server1 mysql]# mysqld --initialize-insecure --user=mysql #初始化数据库[root@server1 data]# vim ~/.bash_profile #给数据库添加环境变量 8 # User specific environment and startup programs 9 10 PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin [root@server1 data]# /etc/init.d/mysqld start #启动数据库Starting MySQL. SUCCESS! [root@server1 data]# mysql_secure_installation #第一次进入数据库的安全工作,设定mysql密码,匿名用户登陆。。。等等的设定[root@server2 data]# mysql[root@server2 data]# chown root:root data/ -R #为了安全经mysql数据目录权限给root用户Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2Server version: 5.7.11 Source distribution Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 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> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+4 rows in set (0.00 sec) mysql> quit
Note: If the following error is found, it is because of mysql As a result of no initialization, restarting the database after mysqld –initialize-insecure –user=mysql will have no such problem.
[root@server2 bin]# /etc/init.d/mysqld startStarting MySQL... ERROR! The server quit without updating PID file (/usr/local/mysql/data//server2.pid).
php source code installation
Installation required dependency packages:
yum install libxml2-devel -yyum reinstall libcurl -yyum install libcurl-devel.x86_64 -ylibjpeg-turbo-devel-1.2.1-1.el6.x86_64 -yyum install gd-devel-2.0.35-11.el6.x86_64.rpm -yyum install gmp-devel -yyum install libmcrypt-2.5.8-9.el6.x86_64.rpm -yyum install libmcrypt-devel-2.5.8-9.el6.x86_64.rpm -yyum install net-snmp-devel -yyum install re2c-0.13.5-1.el6.x86_64.rpm -y
Compile and install
root@server1 lamp]# tar jxf php-5.6.20.tar.bz2 [root@server1 php-5.6.20]# ./configure \ --prefix=/usr/local/lnmp/php \--with-config-file-path=/usr/local/lnmp/php/etc \--with-mysql=mysqlnd \--with-openssl \--with-snmp \--with-gd \--with-zlib \--with-curl \--with-libxml-dir \--with-png-dir \--with-jpeg-dir \--with-freetype-dir \--with-pear \--with-gettext \--with-gmp \--enable-inline-optimization \--enable-soap \--enable-ftp \--enable-sockets \--enable-mbstring \--with-mysqli=mysqlnd \--enable-fpm \--with-fpm-user=nginx \--with-fpm-group=nginx \--with-mcrypt \--with-mhash[root@server1 php-5.6.20]# useradd -M -s /sbin/nologin -d /usr/local/lnmp/mysql/ -u 1500 nginx [root@server1 php-5.6.20]# make && make install
Basic configuration php
[root@server1 php-5.6.20]# cp php.ini-production /usr/local/lnmp/php/etc/php.ini[root@server1 php-5.6.20]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm [root@server1 php-5.6.20]# chmod +x /etc/init.d/php-fpm [root@server1 php-5.6.20]# cd /usr/local/lnmp/php/[root@server1 php]# lsbin etc include lib php sbin var [root@server1 php]# vim etc/php.ini 923 ; Defines the default timezone used by the date functions 924 ; http://php.net/date.timezone 925 date.timezone = Asia/Shanghai #时区 926 [root@server1 etc]# vim php-fpm.conf 24 ; Default Value: none 25 pid = run/php-fpm.pid #开启pid 26 [root@server1 etc]# vim php.ini 1000 ; http://php.net/pdo_mysql.default-socket1001 pdo_mysql.default_socket=/usr/local/lnmp/mysql/data/mysql.sock ...1149 ; http://php.net/mysql.default-socket1150 mysql.default_socket =/usr/local/lnmp/mysql/data/mysql.sock ...1209 mysqli.default_socket =/usr/local/lnmp/mysql/data/mysql.sock1210 [root@server1 etc]# /etc/init.d/php-fpm startStarting php-fpm done
nginx source code installation
[root@server1 ~]# cd nginx-1.12.0[root@server1 nginx-1.12.0]# lsauto CHANGES.ru configure html Makefile objs src CHANGES conf contrib LICENSE man README [root@server1 nginx-1.12.0]# ./configure --prefix=/usr/local/lnmp/nginx \--with-threads \ --with-http_ssl_module \ --with-file-aio \ --with-http_stub_status_module [root@server1 nginx-1.12.0]# make && make install[root@server1 nginx-1.12.0]# ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/[root@server1 nginx-1.12.0]# vim /usr/local/lnmp/nginx/conf/nginx.conf 42 location / { 43 root html; 44 index index.php index.html index.htm; 45 } #添加php的发布页面 64 location ~ \.php$ { 65 root html; 66 fastcgi_pass 127.0.0.1:9000; 67 fastcgi_index index.php; 68 fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 69 include fastcgi.conf; #修改成这个 70 } [root@server1 html]# cat index.php #php发布页面<?php phpinfo() ?> [root@server1 html]# nginx -s reload[root@server1 html]# /etc/init.d/php-fpm reloadReload service php-fpm done
- Test:
172.25.32.1 in the browser
Recommended study: " PHP video tutorial》
The above is the detailed content of php mysql source code installation tutorial. For more information, please follow other related articles on the PHP Chinese website!

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

SublimeText3 Linux new version
SublimeText3 Linux latest version

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

WebStorm Mac version
Useful JavaScript development tools

SublimeText3 English version
Recommended: Win version, supports code prompts!
