NGINX源码安装

# 切换阿里的源# yum -y install wget# sudo mv CentOS-Base.repo CentOS-Base.repo.bak# sudo wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo# yum clean all# yum makecache
#nginx源码编译安装脚本'
https://nginx.org/en/download.html
#1.安装依赖yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre-devel automake autoconf libtool make#创建nginx用户useradd -M -s /sbin/nologin nginx#下载解压ngx_cache_purge模块:用于清除指定url的缓存http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz#配置缓存文件路径和大小proxy_cache_path /data/nginx/cache keys_zone=cache_one:100m;# 配置将限制每个客户端IP到服务器的连接数limit_conn_zone $binary_remote_addr zone=perip:10m;# 限制到虚拟服务器的连接总数:limit_conn_zone $server_name zone=perserver:10m;server{limit_conn perip 10;limit_conn perserver 100;}
#2.配置参数./configure --prefix=/www/server/nginx --sbin-path=/www/server/nginx --conf-path=/www/server/nginx/conf --user=nginx --with-http_stub_status_module --with-http_ssl_module --add-module=../ngx_cache_purge-2.3 --group=nginx#3.编译安装make && make install#4.创建bin软链接ln -s /www/server/nginx/nginx /usr/bin/nginx#5.异常处理# ./configure: error: can not detect sig_atomic_t size # 检测不到size 修改 auto/types/sizeof 文件,找到 ngx_size= 这一行,改为 ngx_size=4 修改完之后,再次configurenginx: [error] open() "/www/server/nginx/logs/nginx.pid" failed (2: No such file or directory)nginx -c /www/server/nginx/conf重新生成pid
#6.无法访问# 看看是否启动# ps -ef|grep nginx# 已经启动无法访问,开放防火墙80端口# firewall-cmd --permanent --add-port=80/tcp# firewall-cmd --reload#7.nginx操作# Options:# -?,-h         : this help# -v            : show version and exit# -V            : show version and configure options then exit# -t            : test configuration and exit# -T            : test configuration, dump it and exit# -q            : suppress non-error messages during configuration testing# -s signal     : send signal to a master process: stop, quit, reopen, reload# -p prefix     : set prefix path (default: /home/lnmp/nginx/)# -c filename   : set configuration file (default: /home/lnmp/nginx/conf)# -g directives : set global directives out of configuration file

mysql源码安装

#mysql源码编译安装脚本
# 前置安装 mysql官网下载地址
https://downloads.mysql.com/archives/community/
# 5.7 需要安装指定版本依赖# boost-1.59 解压后执行./bootstrap.sh && ./b2 install# 安装rpcsvc# wget https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/rpcsvc-proto-1.4.tar.gz# tar xf rpcsvc-proto-1.4.tar.gz# cd rpcsvc-proto-1.4/# ./configure && make && make install#1.安装依赖yum install gcc gcc-c++ cmake ncurses-devel perl perl-devel autoconf libtirpc-devel gettext-devel# 添加mysql用户useradd -s /sbin/nologin -M mysql#
export CC=/usr/bin/gcc
export CXX=/usr/bin/g++
#2.配置参数
cmake -DCMAKE_INSTALL_PREFIX=/www/server/mysql \
-DWITH_BOOST=/root/mysql-8.0.25/boost/  \
-DMYSQL_UNIX_ADDR=/www/server/mysql/tmp/mysql.sock \
-DMYSQL_DATADIR=/www/server/mysql/data \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_INNODB_MEMCACHED=1 \
-DWITH_DEBUG=OFF \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DENABLED_PROFILING=ON \
-DMYSQL_MAINTAINER_MODE=OFF \
-DMYSQL_TCP_PORT=3306#3.编译安装make && make install#4.创建bin软链接ln -s /www/server/mysql/bin/mysqld /usr/bin/#5.配置文件生成# innodb和myisam的区别# myisam是默认表类型不是事物安全的;innodb支持事物。# myisam不支持外键;Innodb支持外键。# myisam支持表级锁(不支持高并发,以读为主);innodb支持行锁(共享锁,排它锁,意向锁),粒度更小,但是在执行不能确定扫描范围的sql语句时,innodb同样会锁全表。# 执行大量select,myisam是最好的选择;执行大量的update和insert最好用innodb。# myisam在磁盘上存储上有三个文件.frm(存储表定义)  .myd(存储表数据)  .myi(存储表索引);innodb磁盘上存储的是表空间数据文件和日志文件,innodb表大小只受限于操作系统大小。# myisam使用非聚集索引,索引和数据分开,只缓存索引;innodb使用聚集索引,索引和数据存在一个文件。# myisam保存表具体行数;innodb不保存。# delete from table时,innodb不会重新简历表,而会一行一行的删除。# linux下mysql5.7以上my.cnf配置文件配置1、我们先停止mysql服务2、创建文件/etc/my.cnf3、在创建的这个文件中进行参数设置,例如:[client]#客户端设置port    = 3306socket    = /www/server/mysql/tmp/mysql.sockdefault-character-set = utf8mb4[mysqld]#mysql启动时使用的用户user    = mysql#默认连接端口port    = 3306#为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件socket    = /www/server/mysql/tmp/mysql.sock#数据库服务器id,这个id用来在主从服务器中标记唯一mysql服务器server-id = 1#端口绑定的ip地址,0.0.0.0表示允许所有远程访问,127.0.0.1表示只能本机访问,默认值为*bind-address = 0.0.0.0#默认名为 主机名.pid,在数据库/mysql/data/主机名.pid,记录mysql运行的process id#如果存在,再次start时会报已经启动pid-file = /www/server/mysql/tmp/mysql.pid#安装目录basedir    = /www/server/mysql#数据库存放目录datadir    = /www/server/mysql/data/#系统数据库编码设置,排序规则character_set_server = utf8mb4collation_server = utf8mb4_bin#secure_auth 为了防止低版本的MySQL客户端(<4.1)使用旧的密码认证方式访问高版本的服务器。MySQL 5.6.7开始secure_auth 默认为启用值1secure_auth = 1#可能的连接数#指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。back_log = 1024##########################################################其他设置##########################################################显式指定默认时间戳,即定义表中的timestamp时间戳的列时需要显示指定默认值#默认为OFF,#如果第一个TIMESTAMP列,没有显式设置DEFAULT,将自动分配DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP属性#timestamp列不能设置为NULL,第二列及以后的timestamp列都默认为"0000-00-00 00:00:00"#如果设置为ON,#第一个timestamp列可以设置为NULL,不会默认分配DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP属性#声明为NOT NULL且没有显式DEFAULT子句,在严格模式下会报错。explicit_defaults_for_timestamp = ON#linux下要严格区分大小写,windows下不区分大小写#1表示不区分大小写,0表示区分大小写。#lower_case_table_names = 0lower_case_table_names = 0#默认sql模式,严格模式#sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,#NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION#ONLY_FULL_GROUP_BY #NO_ZERO_IN_DATE 不允许年月为0#NO_ZERO_DATE 不允许插入年月为0的日期#ERROR_FOR_DIVISION_BY_ZERO 在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。如 果未给出该模式,那么数据被零除时MySQL返回NULL#NO_ENGINE_SUBSTITUTION 不使用默认的存储引擎替代sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION####################################################################各种缓冲区及处理数据的最大值设置#####################################################################是MySQL执行排序使用的缓冲大小。如果想要增加ORDER BY的速度,首先看是否可以让MySQL使用索引而不是额外的排序阶段#如果不能,可以尝试增加sort_buffer_size变量的大小sort_buffer_size = 16M#应用程序经常会出现一些两表(或多表)Join的操作需求,MySQL在完成某些 Join 需求的时候(all/index join),#为了减少参与Join的“被驱动表”的读取次数以提高性能,需要使用到 Join Buffer 来协助完成 Join操作。#当 Join Buffer 太小,MySQL 不会将该 Buffer 存入磁盘文件,而是先将Join Buffer中的结果集与需要 Join 的表进行 Join 操作#然后清空 Join Buffer 中的数据,继续将剩余的结果集写入此 Buffer 中,#如此往复。这势必会造成被驱动表需要被多次读取,成倍增加 IO 访问,降低效率。#若果多表连接需求大,则这个值要设置大一点。join_buffer_size = 16M#索引块的缓冲区大默认16Mkey_buffer_size = 15M# 消息缓冲区会用到该列,该值太小则会在处理大包时产生错误。如果使用大的text,BLOB列,必须增加该值max_allowed_packet = 32M# mysql服务器最大连接数值的设置范围比较理想的是:服务器响应的最大连接数值占服务器上限连接数值的比例值在10%以上# Max_used_connections / max_connections * 100% max_connections = 512# 阻止过多尝试失败的客户端,如果值为10时,失败(如密码错误)10次,mysql会无条件阻止用户连接max_connect_errors = 1000000#表描述符缓存大小,可减少文件打开/关闭次数,一般max_connections*2。table_open_cache = 1024#MySQL 缓存 table 句柄的分区的个数,每个cache_instance<=table_open_cache/table_open_cache_instancestable_open_cache_instances = 32#mysql打开最大文件数open_files_limit = 65535#InnoDB表中,表更新后,查询缓存失效,事务操作提交之前,所有查询都无法使用缓存。影响查询缓存命中率#查询缓存是靠一个全局锁操作保护的,如果查询缓存配置的内存比较大且里面存放了大量的查询结果,#当查询缓存失效的时候,会长时间的持有这个全局锁。#因为查询缓存的命中检测操作以及缓存失效检测也都依赖这个全局锁,所以可能会导致系统僵死的情况#在高并发,写入量大的系统,建义把该功能禁掉query_cache_size = 0#决定是否缓存查询结果。这个变量有三个取值:0,1,2,分别代表了off、on、demand。query_cache_type = 0#指定单个查询能够使用的缓冲区大小,缺省为1Mquery_cache_limit = 1M###############################################################线程相关配置################################################################线程缓存;主要用来存放每一个线程自身的标识信息,线程栈大小thread_stack = 256K#thread_cahe_size线程池,线程缓存。用来缓存空闲的线程,以至于不被销毁,#如果线程缓存在的空闲线程,需要重新建立新连接,则会优先调用线程池中的缓存,很快就能响应连接请求。#每建立一个连接,都需要一个线程与之匹配。thread_cache_size = 384#External-locking用于多进程条件下为MyISAM数据表进行锁定#服务器访问数据表时经常需要等待解锁,因此在单服务器环境下external locking开启会让MySQL性能下降#单服务器环境,使用skip-external-locking,关闭外部锁定,#多服务器使用同一个数据库目录时,必须开启external-locking,也就是说注释掉skip-external-lockingskip-external-locking#最大的空闲等待时间,默认是28800,单位秒,即8个小时#通过mysql客户端连接数据库是交互式连接,通过jdbc连接数据库是非交互式连接#交互式连接超时时间,超过这个时间自动断开连接interactive_timeout = 600#非交互式连接超时时间,超过这个时间自动断开连接wait_timeout = 600#它规定了内部内存临时表的最大值,每个线程都要分配。(实际起限制作用的是tmp_table_size和max_heap_table_size的最小值。)#如果内存临时表超出了限制,MySQL就会自动地把它转化为基于磁盘的MyISAM表,存储在指定的tmpdir目录下tmp_table_size = 96Mmax_heap_table_size = 96M######################################日志设置####################################### 日志时间戳,mysql5.7.2版本之后才有的属性,控制写入到文件上显示日志的时间,# 不会影响general log 和 slow log 写到表(mysql.general_log, mysql.slow_log)中的日志的时间# 可以设置的有:UTC 和 SYSTEM,默认UTC,即0时区的时间,比北京时间慢8小时,所以要设置为SYSTEMlog_timestamps = SYSTEM#日志的输出位置一般有三种方式:file(文件),table(表),none(不保存)#其中前两个输出位置可以同时定义,none表示是开启日志功能但是不记录日志信息。#file就是通过general_log_file=/mydata/data/general.log 等方式定义的,#而输出位置定义为表时查看日志的内容:mysql.general_log表##二进制日志设置#默认不开启二进制日志log_bin = OFF#log-bin = /data/mysqldata/3307/binlog/mysql-bin 设置二进制路径时,如果没有生命log_bin=OFF,会开启日志#二进制日志缓冲大小#我们知道InnoDB存储引擎是支持事务的,实现事务需要依赖于日志技术,为了性能,日志编码采用二进制格式。那么,我们如何记日志呢?有日志的时候,就直接写磁盘?#可是磁盘的效率是很低的,如果你用过Nginx,,一般Nginx输出access log都是要缓冲输出的。因此,记录二进制日志的时候,我们是否也需要考虑Cache呢?#答案是肯定的,但是Cache不是直接持久化,于是面临安全性的问题——因为系统宕机时,Cache中可能有残余的数据没来得及写入磁盘。因此,Cache要权衡,要恰到好处:#既减少磁盘I/O,满足性能要求;又保证Cache无残留,及时持久化,满足安全要求。binlog_cache_size = 16M##慢查询,开发调式阶段才需要开启慢日志功能。上线后关闭slow_query_log = OFF#慢日志文件路径slow_query_log_file = /data/mysql/logs/slow_query.log#该值是ON,则会记录所有没有利用索引来进行查询的语句,前提是slow_query_log 的值也是ONlog_queries_not_using_indexes = ON#记录管理语句log-slow-admin-statements#如果运行的SQL语句没有使用索引,#则mysql数据库同样会将这条SQL语句记录到慢查询日志文件中。调试时候使用#log-queries-not-using-indexes#设定每分钟记录到日志的未使用索引的语句数目,超过这个数目后只记录语句数量和花费的总时间#log_throttle_queries_not_using_indexes = 60#MySQL能够记录执行时间超过参数 long_query_time 设置值的SQL语句,默认是不记录的。超过这个时间的sql语句会被记录到慢日志文件中long_query_time = 2##错误日志:记录启动,运行,停止mysql时出现的信息log-error = /data/mysql/logs/error.log##一般查询日志,记录建立的客户端连接用户的所有操作,增上改查等,#不是为了调式数据库,建议不要开启,0关闭,1开启general_log = OFFgeneral_log_file = /data/mysql/logs/general.log#log-long-format 扩展方式记录有关事件#它是记录激活的更新日志、二进制更新日志、和慢查询日志的大量信息。例如,所有查询的用户名和时间戳将记录下来#log-short-format,相反,记录少量的信息##################################数据库存储引擎#####################################默认使用InnoDB存储引擎default_storage_engine = InnoDB##################################innoDB setting#####################################控制打开.ibd文件的数量。#如果未启用innodb_file_per_table,则默认值为300#否则取决于300和innodb_open_files中的较大值innodb_file_per_table = 1innodb_open_files = 350#表定义缓存(数据字典)数量400-2000,默认为400 + (table_open_cache / 2),小网站可以设置为最低table_definition_cache = 400#InnoDB 用来高速缓冲数据和索引内存缓冲大小。更大的设置可以使访问数据时减少磁盘 I/O。innodb_buffer_pool_size = 64M#单独指定数据文件的路径与大小#默认会在datadir目录下创建ibdata1,表空间tablespace#如果想为innodb tablespace指定不同目录下的文件,必须指定innodb_data_home_dir,home目录innodb_data_file_path = ibdata1:32M:autoextend#对于多核的CPU机器,可以修改innodb_read_io_threads和innodb_write_io_threads来增加IO线程,来充分利用多核的性能。默认4#innodb_write_io_threads = 4#innodb_read_io_threads = 4#并发线程数的限制值,表示默认0情况下不限制线程并发执行的数量innodb_thread_concurrency = 0#开始碎片回收线程。这个应该能让碎片回收得更及时而且不影响其他线程的操作,#默认值1表示innodb的purge操作被分离到purge线程中,master thread不再做purge操作。#innodb_purge_threads = 1#配置MySql日志何时写入硬盘的参数,默认为1#0:log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行。该模式下在事务提交的时候,不会主动触发写入磁盘的操作。#1:每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去#2:每次事务提交时mysql都会把log buffer的数据写入log file,但是flush(刷到磁盘)操作并不会同时进行。该模式下,MySQL会每秒执行一次 flush(刷到磁盘)操作#通常设置为 1,意味着在事务提交前日志已被写入磁盘, 事务可以运行更长以及服务崩溃后的修复能力。innodb_flush_log_at_trx_commit = 1#InnoDB 将日志写入日志磁盘文件前的缓冲大小。理想值为 1M 至 8M。大的日志缓冲允许事务运行时不需要将日志保存入磁盘而只到事务被提交(commit)。#因此,如果有大的事务处理,设置大的日志缓冲可以减少磁盘I/O。innodb_log_buffer_size = 2M#日志组中的每个日志文件的大小(单位 MB)。如果 n 是日志组中日志文件的数目,那么理想的数值为 1M 至下面设置的缓冲池(buffer pool)大小的 1/n。较大的值,#可以减少刷新缓冲池的次数,从而减少磁盘 I/O。但是大的日志文件意味着在崩溃时需要更长的时间来恢复数据。innodb_log_file_size = 128M#指定有三个日志组innodb_log_files_in_group = 3#innodb_max_dirty_pages_pct作用:控制Innodb的脏页在缓冲中在那个百分比之下,值在范围1-100,默认为90.这个参数的另一个用处:#当Innodb的内存分配过大,致使swap占用严重时,可以适当的减小调整这个值,使达到swap空间释放出来。建义:这个值最大在90%,最小在15%。#太大,缓存中每次更新需要致换数据页太多,太小,放的数据页太小,更新操作太慢。innodb_max_dirty_pages_pct = 75#在回滚(rooled back)之前,InnoDB 事务将等待超时的时间(单位 秒)innodb_lock_wait_timeout = 120#Innodb Plugin引擎开始引入多种格式的行存储机制,目前支持:Antelope、Barracuda两种。其中Barracuda兼容Antelope格式。#innodb_file_format = Barracuda#限制Innodb能打开的表的数量#innodb_open_files = 65536#分布式事务#innodb_support_xa = FALSE#innodb_buffer_pool_size 一致 可以开启多个内存缓冲池,把需要缓冲的数据hash到不同的缓冲池中,这样可以并行的内存读写。#innodb_buffer_pool_instances = 4#这个参数据控制Innodb checkpoint时的IO能力#innodb_io_capacity = 500#作用:使每个Innodb的表,有自已独立的表空间。如删除文件后可以回收那部分空间。#分配原则:只有使用不使用。但DB还需要有一个公共的表空间。#innodb_file_per_table = 1#当更新/插入的非聚集索引的数据所对应的页不在内存中时(对非聚集索引的更新操作通常会带来随机IO),会将其放到一个insert buffer中,#当随后页面被读到内存中时,会将这些变化的记录merge到页中。当服务器比较空闲时,后台线程也会做merge操作#innodb_change_buffering = inserts#该值影响每秒刷新脏页的操作,开启此配置后,刷新脏页会通过判断产生重做日志的速度来判断最合适的刷新脏页的数量;#innodb_adaptive_flushing = 1#数据库事务隔离级别 ,读取提交内容#transaction-isolation = READ-COMMITTED#innodb_flush_method这个参数控制着innodb数据文件及redo log的打开、刷写模式#InnoDB使用O_DIRECT模式打开数据文件,用fsync()函数去更新日志和数据文件。#innodb_flush_method = O_DIRECT#默认设置值为1.设置为0:表示Innodb使用自带的内存分配程序;设置为1:表示InnoDB使用操作系统的内存分配程序     #innodb_use_sys_malloc = 1##################################myisam setting####################################bulk_insert_buffer_size = 8Mmyisam_sort_buffer_size = 8M# MySQL重建索引时所允许的最大临时文件的大小myisam_max_sort_file_size = 10Gmyisam_repair_threads = 1#数据库全量备份[mysqldump]#强制mysqldump从服务器一次一行地检索表中的行quick#可接收数据包大小max_allowed_packet = 16M#在mysqld服务器不使用的情况下修复表或在崩溃状态下恢复表[myisamchk]key_buffer_size = 8Msort_buffer_size = 8Mread_buffer = 4Mwrite_buffer = 4M4、设置好,保存!然后重启mysql5、登录mysql,输入如下命令,就可看到我们创建的配置文件里的参数设置生效了:# 6.开启mysql服务#创建 logs  data tmp 文件夹并给予权限/www/server/mysql/support-files/mysql.server restart --user=mysql#授权远程访问create user 'mysql'@'%' identified by '密码';GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'%';ALTER USER 'mysql'@'%' IDENTIFIED WITH mysql_native_password BY '密码';FLUSH PRIVILEGES;
# 7.异常报错 Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist删除data中的文件,用mysql用户重新初始化mysqld --initialize --user=mysql --console#日志文件查看密码A temporary password is generated for root@localhost: 8pvOkg;fFy%!登录密码:8pvOkg;fFy%!重复步骤6,登录mysql后,执行下面命令修改set password for root@localhost = password('123456');mysql8 用Navicat连接的回报不支持caching_sha2_password验证方式的错误。
将远程访问用户的验证方式改为: msyql_native_password
执行:ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;

php源码安装,redis扩展安装,swoole扩展安装

#php源码编译安装脚本
https://www.php.net/downloads.php#v8.0.10
#1.安装依赖yum install gcc gcc-c++ zip unzip libxml2 libxml2-devel curl-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel  zlib zlib-devel glibc glibc-devel glib2 glib2-devel gd-devel bzip2 bzip2-devel  libzip-devel sqlite-devel oniguruma-devel编译安装./autogen.sh && ./configure --prefix=/usrmake && make install#2.配置参数
./configure \
--prefix=/www/server/php/php80 \
--with-config-file-path=/www/server/php/php80/conf \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-zlib \
--enable-mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-mysql-sock=/www/server/mysql/tmp/mysql.sock \
--with-gd \
--with-png-dir \
--with-jpeg-dir \
--with-freetype-dir \
--with-iconv-dir \
--with-openssl \
--with-curl \
--enable-bcmath \
--enable-mbstring \
--enable-static \
--enable-zip \
--enable-sockets \
--enable-xml#3.编译安装make && make install#4.创建bin软链接ln -s /www/server/php/php80/bin/php /usr/bin/ln -s /www/server/php/php80/bin/phpize /usr/bin/ln -s /www/server/php/php80/bin/php-config /usr/bin/#5.配置文件复制cp 源码目录/php.ini-production /www/server/php/php80/conf/php.ini#在php.ini中配置好mysqli路径。#命令行登录mysql 通过命令 STATUS 获取mysql.sock路径pdo_mysql.default_socket= /www/server/mysql/tmp/mysqld.sockmysqli.default_socket = /www/server/mysql/tmp/mysqld.sockmysqli.default_port = 3306
pdo_mysql.default_socket= /www/server/mysql/tmp/mysqld.sock
#6.查看版本和扩展php -version && php -m#7.安装redis,安装启用redis扩展https://redis.io/# 解压进入redis源码目录make PREFIX=/www/server/redis install# 复制配置文件cp ./redis.conf /www/server/redis/# 创建软连接ln -s /www/server/redis/bin/redis-server /usr/bin/# 开启redisredis-server# 解压进入redis扩展源码目录https://pecl.php.net/package/redis# 生成configure文件phpize# 配置configure./configure --with-php-config=php-config# 编译安装make && make install# 配置文件打开redis扩展vi /www/server/php/php80/conf/php.iniextension=redisphp -c php.ini的目录/php.ini# 如果是用php-fpmphp-fpm -c php.ini的目录/php.ini# 8.安装启用swoole扩展https://wiki.swoole.com/#/environment# 解压进入swoole扩展源码目录# 生成configure文件phpize# 配置configure./configure --with-php-config=php-config# 编译安装make && make install# 配置文件打开swoole扩展vi /www/server/php/php80/conf/php.iniextension=swoolephp -c php.ini的目录/php.ini# 如果是用php-fpmphp-fpm -c php.ini的目录/php.ini
#9.报错
报错:Package 'oniguruma', required by 'virtual:world', not found
wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz
./autogen.sh && ./configure --prefix=/usr
make && make install
https://www.cnblogs.com/architectforest/p/12433640.html

nginx+php-fpm配置

#1.配置php-fpmcd /www/server/php/etc#有一个php-fpm.conf.default的文件,cp复制cp php-fpm.conf.default php-fpm.conf#编辑 php-fpm.conf找到以下配置项, 配置如下pid = /www/server/php/run/php-fpm.pid#配置文件cd php-fpm.dcp www.conf.default www.conf#2.关闭启动 php-fpmcat /www/server/php/run/php-fpm.pidkill 311635/www/server/php/sbin/php-fpm#3.Nginx与PHP的两种通信方式-unix socket和tcp socket1、两者Nginx配置unix socket需要在nginx配置文件中填写php-fpm运行的pid文件地址。location ~ \.php$ {include fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_pass unix:/www/server/php/run/php.sock;fastcgi_index index.php;}tcp socket需要在nginx配置文件中填写php-fpm运行的ip地址和端口号。location ~ \.php$ {include fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;}如果是在同一台服务器上运行的nginx和php-fpm,并发量不超过1000,选择unix socket,因为是本地,可以避免一些检查操作(路由等),因此更快,更轻。 如果面临高并发业务,我会选择使用更可靠的tcp socket,以负载均衡、内核优化等运维手段维持效率。#4.异常-unix socket方式#访问PHP文件时An error occurred.,访问Html页面正常。#查看Nginx日志报错(路径:/www/server/nginx/logs/error.log, 不同版本路径可在nginx配置文件中查看) connect() to unix:/www/server/php/run/php-fpm.pid failed (13: Permission denied) while connecting to upstream, client然后查了很多资料,发现是用户组不同导致没权限执行1.nginx的配置文件(/www/server/nginx/conf): 将#user nginx修改为user nginx; 2.查看php-fpm配置(/www/server/php/etc/php-fpm.d/www.conf)listen = /www/server/php/run/php.socklisten.owner = nginxlisten.group = nginxlisten.mode = 0660

添加环境变量

添加到环境变量中
vim /etc/profile 在最后添加:
PATH=/www/server/mysql/bin/:/www/server/nginx/:/www/server/php/bin:$PATH (其中/www/server/mysql/bin/:/www/server/nginx/:/www/server/php/bin就是软件命令所在路径)
export PATH
然后保存退出
使环境变量生效
source /etc/profile

LNMP源码安装教程相关推荐

  1. ansible1.7.2源码安装教程

    ansible1.7.2源码安装教程 ================================================================================= ...

  2. mysql data文件夹恢复_【专注】Zabbix源码安装教程—步骤详解(2)安装并配置mysql...

    四.安装并配置mysql(1) 解压mysql-5.7.26.tar.gz与boost_1_59_0.tar.gz #tar -xvf mysql-5.7.26.tar.gz #tar -xvf bo ...

  3. php+mysql案例含源码_【专注】Zabbix源码安装教程—步骤详解(1)安装前准备

    一.实验环境准备 Rhel 7.6 x86_64(server) 192.168.163.72 Rhel 6.5 x86_64(agent) 192.168.163.61 均已配置操作安装光盘为YUM ...

  4. 最详细新版网课联盟27刷网课平台源码+安装教程+最新模板+下载地址

    新版网课联盟27刷网课平台源码+安装教程+最新模板 第一步:准备一个服务器+域名 没有域名暂时使用服务器网址也可以 第二步:上传文件 上传文件到wwwroot上面,进行解压 第三步:进行防伪静态设置: ...

  5. php网站源码安装教程

    php网站源码安装教程 1.可以选择购买一个支持php的空间,空间的大小要足够大于你要在空间上传的源码文件,另外空间的速度一定要快,否则会影响到你用户的体验度,好的空间最好速度能达到100兆,这样体验 ...

  6. 微云二手车运营版 公众号+小程序v1.1.20+微信小程序+抖音端源码安装教程

    系统包括PC+公众号+小程序v1.1.20+微信小程序+抖音小程序前端,使用前先在后台初始化下数据.播播资源网技术小编看了下说明是带PC端功能,但后台没找到设置的地方,不过公众号+小程序+抖音也够用了 ...

  7. 最新二开抢单系统淘宝自动抢单源码安装教程

    最新二开抢单系统淘宝自动抢单源码安装教程 [2次开发版]2020最新五代分佣抢单系统唯品会京东淘宝自动抢单区块源码 新增理财宝收益分佣功能 五代分佣 新增用户提现手续费 2020年02月04日升级 新 ...

  8. php mysql 源码 安装教程_源码安装和配置apache(httpd)和 PHP 和 mysql全过程(一)...

    [服务器环境为:CentOS6.5 64位目标:搭建LNMP(Linux + Nginx + MySQL + PHP +SVN),其中svn是用来代替ftp,方便开发中调试同步代码相关目录:所有软件都 ...

  9. 微小区v11.1.1 (公众号+小程序模块版)源码安装教程

    微小区微擎模块版很早以前使用过,非常合适物业公司或者集团式物业公司公众号应用,一个平台多个小区.多个物业公司管理,非常好的物业解决方案,每个小区都可以单独设置自己的小区主页,业主打开平台时会提示选择小 ...

最新文章

  1. 快速掌握阿里云 E-MapReduce
  2. Web安全之XSS漏洞
  3. ABAP中有关于换行符,TAB KEY等
  4. [案例分享]科大云炬工作室开发的安卓APP项目
  5. boost::gursoy_atun_layout用法的测试程序
  6. python常见排序算法解析
  7. Ubuntu 系统安装APACHE PHP MYSQL
  8. android在activity中锁屏解锁后重走OnCreate的问题的解决办法
  9. 什么是今日头条下拉词下拉框?
  10. centos7 文件名中文乱码_Linux服务器文件名乱码常见问题
  11. vivado下载失败并报 End of startup status:LOW
  12. 4093:倒排索引查询--bitmap并查集
  13. word方框中打对号
  14. Excel 怎么验证身份证号码是否重复
  15. html转换下一页,如何转到下一页与HTML和/或JS锚?
  16. 用微分和差分方程描述的因果LIT系统
  17. 【最新】香港出入境政策+自动签注+口岸通关时间【更新2023.2.7】
  18. centos7.7 安装google浏览器
  19. 1 Java语言概述
  20. mysql 关联更新_MySQL UPDATE多表关联更新

热门文章

  1. python实现登陆注册跳转_Python模拟登录和登录跳转的参考示例
  2. 2n皇后的问题java_蓝桥杯java 基础练习 2n皇后问题
  3. 对称二叉树c++_二叉树:我对称么?
  4. curl 慢 不稳定_徐工起重机:龟速一样"慢"的机器,竟还有人抢着买?
  5. php 转义md5 和java 转译的区别_CTF|PHP中的命令参数注入
  6. 大学计算机实验报告2,大学计算机基础实验报告2.doc
  7. IDEA 修改 jdk 版本
  8. 北京大学生物信息学(8)
  9. mysql命令 show_mysql show 相关命令
  10. md5util java_Java 工具类 - MD5Util