怎么查看一个网站的建设地区,义乌外发饰品加工网,北京网站建设华大,汉中微信网站建设推广# LAMP ## 一、知识回顾 ### FTP samba nfs 特点 - 借用Linux用户作为映射用户#xff0c;进行权限管理 - 软件本身还有管理控制权限 #### 客户端连接到服务器后进行读写执行等操作 #xff0c;必须同时具有: - 软件许可的权限 vsftpd: anon upload enableYES - 文件…# LAMP ## 一、知识回顾 ### FTP samba nfs 特点 - 借用Linux用户作为映射用户进行权限管理 - 软件本身还有管理控制权限 #### 客户端连接到服务器后进行读写执行等操作 必须同时具有: - 软件许可的权限 vsftpd: anon upload enableYES - 文件系统许可的权限 chmod 755 filename chown user:qroup filename - ftp和samba区别: ftp仅支持客户端操作samba支持服务器端操作内网用得多场景多人共享同一份资源时使用Samba也可降低对每个用户存储空间的要求。 ### linux搭建samba服务器步骤 shell yum -y install samba mkdir -p /data/mysql 要共享的目录 cd /etc/samba cp -a smb.conf.example smb.conf # 把模板文件复制给conf vim smb.conf useradd laow 创建samba用户 pdbedit -a laow 给samba用户设置密码 systemctl enable --now smb 启动服务 chown -R laow.laow /data/mysql/ 给samba用户添加服务目录的权限 smb.conf要写入的规则
![[Pasted image 20240914224341.png]] 如何让Linux客户端永久挂载samba服务器 ![[Pasted image 20240914224912.png]] ## 二、LAMP搭建 ### LAMP搭建 L: Linux A: Apache(httpd) M:MySQL(Mariadb) P:PHP、python、perl ### 如何正确地部署和选择合适的LAMP环境 - 在部署过程中建议结合源代码编译核心软件如使用MySQL源码而非RPM包与使用RPM包安装非核心依赖软件的方式来简化流程。 ### 部署LAMP环境的方法: - 最简单RPM包 shell yum -y isntall httpd mariadb-server php cd /var/www/html/ echo hello index.html systemctl start httpd - 安装一键安装脚本 [下载 - LNMP一键安装包](https://lnmp.org/download.html) shell tar -xvf lnmp1.9-full.tar.gz cd lnmp1.9-full/ ./install.sh lamp #安装完部署俩个小项目 #1 cd /home/wwwroot/default/ mkdir ./bak mv index.html lnmp.gif ocp.php phpinfo.php p.php /bak #保留phpmyadmin unzip /root/typecho.zip -d /home/wwwroot/default/ chown -R www.www * #得让运行这个进程的用户对这些文件有权限 cd themes/ #替换模组的文件 #添加插件 unzip /root/Snow.zip -d /home/wwwroot/default/usr/plugins/ cd /home/wwwroot/default/usr/plugins chown -R www.www * #2 unzip /root/Discuz_X3.3_SC_UTF8.zip mkdir -pv /home/wwwroot/default/bbs mv upload/ /home/wwwroot/default/bbs cd /home/wwwroot/default/ chown -R www.www bbs/ * #得让运行这个进程的用户对这些文件有权限 - 细节 得让运行这个进程的用户对这些文件有权限 并提前创建好数据库用户 并查看3306 80 22 端口是否开启 ![[Pasted image 20240920195248.png]]
![[Pasted image 20240920194903.png]] ![[Pasted image 20240920194705.png]] ![[Pasted image 20240920195024.png]]
## 三 手动源码编译安装(最难) - 源码软件安装 - ./configure #将以下检查和指定的参数都写入到MakeFile文件中让make命令作为参考进行编译 #安装前环境检查脚本 #1. 编译工具是否安装 #2. 软件之间的依赖解决方案1. 跟随编译如Apache中的APR和APR-Util、2. 提前编译编译nginx要提前编译gcc zlib-devel pcre -devel 、3. rpm解决依赖 #3. 指定安装路径 --prefixPATH #4. --with-* --without-* #是否关联其他软件作为依赖 #5. --enable、--disable #是否启用本身自带的某功能 #6. ./configure --help | grep -E (enableldisable) 查看帮助命令 --enable-rewriteshared 用于处理动态资源 - make #将源码编译成二进制 #MakeFile作为编译参考文件 - make install #将make编译之后的二进制文件按照prefix选项指定的路径进行复制粘贴并修改属性归属和权限 - cpio 进行文件或目录的备份类似于打包操作 优势可以按照文件的绝对路径进行打包解包时按照绝对路径还原 (CPIO是备份工具他把分散在各个地方的这些文件的绝对路径汇总在一起做成了一个备份文件然后再在这个备份文件外边套一个RPM的包的后缀名。发给别人使用 - 共有库和私有库编译指定了自己的安装路径之后编译后生成的函数文件的存放位置叫私有库。编译安装时没有指定路径安装之后放到usr/lib ,usr/lib64等目录下称为叫公共库。 - 网站迁移设置域名重写规则。即当用户通过旧域名访问网站时服务器会自动重定向至新域名 ### 编译安装 - **libxml2** 解析器是处理XML语言所必需的工具 - **libmcrypt** **mhash** **mcrypt** 支持不同的加密算法如哈希算法、SHA算法和MD5算法,并需要它们相互补充 - **zlib** 找到CFLAGS-O3 -DUSE_MMAP在后面加入 **-fPIC** FPIC选项是为了解决特定版本兼容性问题 - **libpng** **jpeg6** 需要特定的解码软件支持并在服务器端正确配置安装路径 - **freetype** 用于字体渲染和字体转换支持多种字体如宋体、黑体、微软雅黑 - 64位系统与32位软件兼容性问题通过把32位按照软链接方式64位软件链接的兼容问题 - 安装Apache时需先解决APR和PCRE问题 apache的特定的文件——mime.types文件该文件位于apache安装目录下的conf/子目录内用来帮助Apache通过后缀名识别文件的具体类型。 - MySQL初始化脚本mysql.server。该脚本包含了MySQL启动、停止和重载等动作的基本逻辑启动/usr/local/mysql/bin/mysql -u root -p 创建中文数据库 create database test2 character set utf8; - 具体步骤 - https://blog.csdn.net/gsdgdg00/article/details/142480086?fromshareblogdetailsharetypeblogdetailsharerId142480086sharereferPCsharesourcegsdgdg00sharefromfrom_link ![[Pasted image 20240923194643.png]] ### 注意和报错
- 问题在编译时缺乏树状依赖如何寻找并安装缺失的依赖文件如expat.h去这https://rpm.pbone.net/ 找对应版本的依赖包 ![[Pasted image 20240923193008.png]]
![[Pasted image 20240923193735.png]]
- make 编译中止时要在编译前先make clean 在make make -j是不支持老版本的软件的 - **apache报错提示**若启动时提示/usr/local/apache2/modules/mod_deflate.so无权限可关闭SELinux解决类似此类.so文件不能载入或没有权限的问题都是SELinux问题MySQL和Apache都可能有类似问题。 - **apache警告提示**发现启动服务提示AH00558: httpd: Could not reliably determine the servers fully qualified domain name, using localhost.localdomain. Set the ServerName directive globally to suppress this message **解决办法**打开主配置文件httpd.conf 搜索ServerName 约在200行左右改为ServerName localhost:80并且去掉前面的#注释 - 备份新方法 ![[Pasted image 20240923194125.png]] ## 四、LAMP原理讲解
![[Pasted image 20240920195932.png]] - 文件本身不会因为被访问而发生变化的资源叫静态资源,文件本身会因为被访问而发生变化的资源叫动态资源 - 如何确保项目安装后能顺利连接数据库在项目安装过程中需要将连接数据库的参数如账号、密码、数据库IP等保存在配置文件中以便后续每次请求数据库时直接调用这些信息进行连接确保项目能够正常运行。 - 登录流程是如何进行的登录流程中用户在网页表单填写账号和密码后提交服务器通过调用PHP函数连接数据库根据提交的账号信息查询数据库并将用户提交的密码与数据库中的密码进行比对若一致则身份验证成功用户成功登录。 - apache接收到请求后如何处理当apache接收到用户请求后它会查看请求的URL地址栏内容如果用户请求的是静态资源apache可以从硬盘加载到内存并直接响应给客户端。但如果用户请求的是动态资源apache则需要解析网页内容、连接数据库并处理数据变化。
## 五、命令和问题扩展
- 使用dd命令创建swap空间 shell dd if/dev/zero of/dev/swapfile bs1M count2048 #扩容swap mkswap /dev/swapfile #格式化swap内存 swapon /dev/swapfile #开启swap内存 vim /etc/fstab #永久挂载swap - 给文件打补丁 shell diff #生成补丁文件 patch #给旧文件打补丁 示例 vim a.txt #旧文件 vim b.txt #新文件 diff -u a.txt b.txt p.patch #生成补丁文件p.patch patch a.txt p.patch #给a文件打补丁 cat a.txt #查看内容是否发生变化 - 其他开发平台介绍 LTMJ Linux Tomcat MySQL JDK httpd 、 nginx 、tomcat LNAMP Linux Nginx Apache MySQL PHP
- 网络实验小技巧 在用脚本写搭建vsftp虚拟用户服务时预先准备一个已修改好的配置文件然后将这个配置文件直接覆盖到新安装的软件配置文件上最后启动服务用sed会出错 - 写脚本技巧 - 模块化脚本将不同功能的脚本分开便于管理和测试。 - 了解脚本逻辑主要功能通过内部调用实现外部提供选择界面![[Pasted image 20240920192950.png]] - web服务nginx已被f5公司收购 阿帕奇有httpdtomcat nginx适用于高并发场景相比更侧重性能而非稳定性Apache更侧重稳定性 - 举例 选择使用哪种Web服务器时需考虑实际情况比如高校网站平时访问量不大时单一使用Apache可能已经足够。而对于经常举办秒杀等活动的电商平台则可能需要Nginx来提升并发处理能力。 - 404因为客户端请求资源失败所以是客户端错误