centos7安装php.5.6 nginx-1.10.1 mysql-5.6.31

56 篇文章 0 订阅

cd /usr/local/src

1首先安装php的依赖

yum install gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel -y 

2.编译安装

tar zxf php-5.6.30.tar.gz

cd php-5.6.30

./configure --prefix=/usr/local/php --enable-fpm --with-zlib --with-curl --with-pdo-mysql --enable-mbstring --with-gd --with-png-dir=/usr/lib64 --with-jpeg-dir=/usr/lib64 --with-freetype-dir=/usr/lib64


 make && make install

3.添加执行用户

groupadd www-data

useradd -g www-data www-data

4.修改配置文件

另外注意一个地方就是php.ini配置文件的位置可以在编译前配置参数中设置,编译参数可以写成:--with-config-file-path=/usr/local/php 这样的话php就回去指定的目录下读取php.ini配置文件,如果不加这个参数默认位置就是php安装目录下的lib目录,具体也可以在phpinfo()输出界面查看,如果php.ini放到其他位置,php读取不到,那么所有的配置修改后都是不生效的,这点要注意

cp php.ini-development /usr/local/php/lib/php.ini

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

cp /usr/local/src/php-5.6.30/sapi/fpm/init.d.php-fpm /usr/local/bin/php-fpm  或者 /usr/local/bin/php-fpm #可改名

chmod +x /etc/init.d/php-fpm 或者 chmod +x /usr/local/bin/php-fpm

启动php-fpm
/etc/init.d/php-fpm start

vim  php-fpm.conf   1.pid 前面的分号去掉 2.设置对于的用户和组 修改为 user=www-data group=www-data

首次启动测试  /usr/local/php/sbin/php-fpm 也可以把执行的php-fpm放到  /usr/local/bin

cp /usr/local/php/sbin/php-fpm /usr/local/bin 

开启日志 修改php.ini 

1. error_reporting  =  E_ALL             ;将会向PHP报告发生的每个错误   
2. display_errors = Off                 ;不显示满足上条 指令所定义规则的所有错误报告    错误信息不在页面展示
3. log_errors = On                    ;开启错误日志   
4. log_errors_max_len = 1024               ;设置每个日志项的最大长度   
5. error_log = /var/php_errors.log            ;指定产生的 错误报告写入的日志文件位置  一定记得给目录文件加权限
 

ps -ef |grep php

nginx安装

1首先安装nginx的依赖

yum install gcc gcc-c++ openssl openssl-devel cyrus-sasl-md5 -y

cd /usr/local/src

2.上传安装包 上传 pcre-8.39.tar.gz  zlib-1.2.8.tar.gz nginx-1.10.1.tar.gz 到 /usr/local/src/

tar zxf pcre-8.39.tar.gz

tar zxf zlib-1.2.8.tar.gz

tar zxf nginx-1.10.1.tar.gz

xzvf

3.编译安装

cd /usr/local/src/nginx-1.10.1

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-pcre=../pcre-8.39 --with-zlib=../zlib-1.2.8

make && make install

 

首次启动测试 /usr/local/nginx/sbin/nginx  

之后可以把执行的nginx放到  /usr/local/bin

#cp /usr/local/nginx/sbin/nginx  /usr/local/bin

ln -s /usr/local/nginx/sbin/* /usr/local/bin

/usr/local/bin/nginx -t   #检查配置文件

/usr/local/bin/nginx -s reload #平滑重启

nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"问题  就是因为首次启动不是usr/local/nginx/sbin/nginx 

重新运行下usr/local/nginx/sbin/nginx 就可以了

设置全局的nginx命令
vim /etc/profile
在文件最后添加:

PATH=$PATH:/usr/local/php/bin:/usr/local/nginx/sbin/nginx
export PATH

然后执行 命令 source /etc/profile

 

4.创建配置文件目录

cp /usr/local/src/nginx-1.10.1/conf/nginx.conf /usr/local/nginx/conf

 mkdir /usr/local/nginx/conf/vhosts #网站配置文件目录

mkdir /usr/local/nginx/conf/rewrite  #重写地址规则配置文件目录

修改默认配置文件 vim /usr/local/nginx/conf/nginx.conf 改为下列代码

worker_processes  4;

error_log  /usr/local/nginx/logs/error.log crit;
pid        /usr/local/nginx/logs/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;

events
{
  use epoll;
  worker_connections 65535;
}


http {
        include       mime.types;
        default_type  application/octet-stream;

        #charset  gb2312;

        server_names_hash_bucket_size 128;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size 8m;

        sendfile on;
        tcp_nopush     on;

        keepalive_timeout 60;

        tcp_nodelay on;

        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 4 64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 128k;

        gzip on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.0;
        gzip_comp_level 2;
        gzip_types       text/plain application/x-javascript text/css application/xml;
        gzip_vary on;
        #limit_zone  crawler  $binary_remote_addr  10m;
        log_format '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
        include /usr/local/nginx/conf/vhosts/*.conf;
}

 cd /usr/local/nginx/conf/vhosts

http-demo.conf 网站配置文件


// 如果设置了域名 不想再ip被访问,多加个server 指向强制跳转到自己域名
server {
       listen 80 default;
       server_name _;
       
       ##以下两种二选一
       rewrite ^(.*) http://www.baidu.com permanent; ##强制跳转到指定的网址
       ## return 403;  ##或者直接返回403
}

server {
    listen 80;
    #server_name www.baidu.com;
    server_name  localhost;
    index index.php index.html index.htm;
    root /home/demo;

    location / {
        #访问路径的文件不存在则重写URL转交给ThinkPHP处理
        if (!-e $request_filename) {
           #rewrite  ^/(.*)$  /index.php?s=$1  last;
           rewrite ^/(.*)$ /index.php?s=/$1 last;
           break;

        }
    }

    location ~ \.php/?.*$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        #加载Nginx默认"服务器环境变量"配置
        include        fastcgi.conf;

        #设置PATH_INFO并改写SCRIPT_FILENAME,SCRIPT_NAME服务器环境变量
        set $fastcgi_script_name2 $fastcgi_script_name;
        if ($fastcgi_script_name ~ "^(.+\.php)(/.+)$") {
            set $fastcgi_script_name2 $1;
            set $path_info $2;
        }
        fastcgi_param   PATH_INFO $path_info;
        fastcgi_param   SCRIPT_FILENAME   $document_root$fastcgi_script_name2;
        fastcgi_param   SCRIPT_NAME   $fastcgi_script_name2;
    }
}

https-demo.conf 网站配置文件


server {
    listen 80;
    server_name www.baidu.com;

    return  301  https://www.baidu.com$request_uri;
} 

server {
    listen 443;
    server_name www.baidu.com;
    ssl on;
    root /home/demo;
    index index.php index.html index.htm;
    ssl_certificate   cert/demo.crt;
    ssl_certificate_key  cert/demo.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    location / {
        #访问路径的文件不存在则重写URL转交给ThinkPHP处理
        if (!-e $request_filename) {
           rewrite  ^/(.*)$  /index.php/$1  break;
        }
    }

    location ~ \.php/?.*$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        #加载Nginx默认"服务器环境变量"配置
        include        fastcgi.conf;

        #设置PATH_INFO并改写SCRIPT_FILENAME,SCRIPT_NAME服务器环境变量
        set $fastcgi_script_name2 $fastcgi_script_name;
        if ($fastcgi_script_name ~ "^(.+\.php)(/.+)$") {
            set $fastcgi_script_name2 $1;
            set $path_info $2;
        }
        fastcgi_param   PATH_INFO $path_info;
        fastcgi_param   SCRIPT_FILENAME   $document_root$fastcgi_script_name2;
        fastcgi_param   SCRIPT_NAME   $fastcgi_script_name2;
    }
}

mysql安装

1.编译安装

tar zxf mysql-5.6.31.tar.gz

cd /usr/local/src/mysql-5.6.31

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data

如果提示cmake不存在 执行 yum install cmake -y

如报错误 CMake Error at cmake/readline.cmake:85 (MESSAGE): Curses library not found.

Curses library not found.  Please install appropriate package,

      remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
 

yum -y install ncurses-devel

find / -name CMakeCache.txt

删除找出来的CMakeCache.txt

rm -rf /usr/local/src/cmake-2.8.8/Tests/ComplexOneConfig/Cache/CMakeCache.txt

make && make install

2.创建用户和组

cd /usr/local/mysql/

groupadd mysql

useradd -r -g mysql mysql

将所有的目录都改成mysql用户和mysql组 (安装好后默认都是root) 

chown -R mysql:mysql .      #后面有点 一定要带着 表示当前

rm -f /etc/my.cnf

 

安装MySQL系统表

./scripts/mysql_install_db --user=mysql

please install the following Perl modules before executing ./scripts/mysql_install_db:
Data::Dumper

解决方法是安装autoconf库y um -y install autoconf 

 

所有目录都改成root 和root组 只有data目录不是不是

chown -R root:root .
chown -R mysql:mysql data

 

修改配置文件

cp support-files/my-default.cnf /etc/my.cnf 

my.cnf

port = 9886
log-error = /usr/local/mysql/error.log
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
sql_mode=NO_ENGINE_SUBSTITUTION
table_open_cache=128
performance_schema_max_table_instances=200
table_definition_cache=200
 

启动程序

cp support-files/mysql.server /etc/init.d/mysqld  或者  cp support-files/my-default.cnf/ /usr/local/bin/mysqld

以完整路径的方式启动MySQL

/usr/local/mysql/bin/mysqld_safe --user=mysql &

190418 16:00:17 mysqld_safe Logging to '/usr/local/mysql/data/VM_0_8_centos.err'.
190418 16:00:17 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

启动时如果感觉卡住了 按下回车键

ps -ef|grep mysql

 

登录

/usr/local/mysql/bin/mysql -u root -p
 

 

配置MySQL守护进程 将MySQL程序复制到启动目录

cp support-files/mysql.server /etc/init.d/mysqld  

chkconfig --add mysqld

可以使用管理服务的命令管理MySQL了 

centos6 service mysqld start

centos7 systemctl start mysqld

配置环境变量

vim /etc/profile

找到文件最下面 修改对应位置 将MySQL对应的bin目录增加进去

export PATH="$PATH:/usr/local/apache/bin:/usr/local/mysql/bin"

让环境变量生效

source /etc/profile

连接MySQL  此时mysql还没有密码 

mysql -u root -p

查看有哪些用户 

use mysql

select user,password,host from mysql.user;

删除不必要的用户

delete from mysql.user where host <> 'localhost';
delete from mysql.user where user <> 'root';

该用户设置密码 (密码可以自定义)

update mysql.user set password=password('root') where user='root';  # 设置密码
flush privileges; # 刷新权限让密码生效

设置远程访问

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

flush privileges; //刷新MySQL的系统权限相关表­

 

如果mysql使用过程中

报错起不来 Starting MySQL..... ERROR! The server quit without updating PID file (/usr/local/mysql/data/VM_0_8_centos.pid).

按mysqld_safe启动   /usr/local/mysql/bin/mysqld_safe --user=mysql &

 

小内存服务器mysql占内存高优化


[mysqld]
performance_schema_max_table_instances=400         
table_definition_cache=400                         
table_open_cache=256 

忘记root密码

1.vim /etc/my.cnf 在[mysqld]的段中加上一句:skip-grant-tables 

service mysqld restart

2.登录mysql -u root -p

mysql> USE mysql ; 

Database changed 

mysql> update user set password=password("123456") where user='root';

5.7版本 使用 update mysql.user set authentication_string=password('123456') where user='root';

Query OK, 0 rows affected (0.00 sec) 

Rows matched: 2 Changed: 0 Warnings: 0 

mysql> flush privileges ; 

Query OK, 0 rows affected (0.01 sec) 

mysql> quit

 

3.修改默认端口

vim /etc/my.cnf

port = 9886
log-error = /usr/local/mysql/error.log

service mysqld restart

 

4.远程访问 iptables防火墙添加端口 如果访问不了,考虑是否云服务器有防火墙限制

/sbin/iptables -I INPUT -p tcp --dport 9886 -j ACCEPT

然后保存:

/etc/rc.d/init.d/iptables save

service iptables restart

vim /etc/sysconfig/iptables

 

5.mysql设置远程访问权限 *.* 允许远程访问的IP地址 .表示所有IP都可以根据rycroot用户进行访问

登录mysql -u root -p

use mysql;

grant all privileges on *.* to 'ycroot'@'%' identified by '123456' with grant option;

flush privileges; //刷新MySQL的系统权限相关表­

quit; // 退出mysql

 

设置用户 root 可以在本地被访问

use mysql;

grant all privileges on *.* to root@"localhost" identified by "123456";

flush privileges; //刷新MySQL的系统权限相关表­

quit; // 退出mysql

 

创建被删除的用户,并赋予超级权限

use mysql;

grant all on*.* to root@localhost identified by '123456' with grant option;       #创建被删除的用户,并赋予超级权限

flush privileges; //刷新MySQL的系统权限相关表­

https://blog.csdn.net/qq_35061546/article/details/78703164

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值