问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

配置好了PHP+MYSQL+APACHE 要测试数据库链接,写了如下所示的代码?这是为什么呢?

发布网友 发布时间:2022-05-02 22:27

我来回答

3个回答

懂视网 时间:2022-05-03 02:48

环境:

192.168.205.7: as ansible host
192.168.205.37: as mariadb server
192.168.205.27: as web server and rsyslog client

版本:

OS: centos 7 1810 with mini install
ansible: 2.8.1
mariadb-10.2.25-linux-x86_64.tar.gz
apr-1.7.0.tar.bz2
apr-util-1.6.1.tar.bz2
httpd-2.4.39.tar.bz2
php-7.3.7.tar.xz
loganalyzer-4.1.7.tar.gz

目地:

编译安装apache2.4.39, 编译安装php7.37, 二进制安装mariadb server10.2.25, 将192.168.205.27的日志记录发送到mariadb server中,并同时使用192.168.205.27做为LAMP server使用loganalyzer显示和分析日志

步骤:

1. 通过ansible安装mariadb
2. 编译安装apache2.4.39
3. 通过ansible安装apache
4. 编译安装php
5. 通过ansible安装php
6. 在要把日志存到sql中的服务器安装rsyslog相关文件
7. 初始化数据库并安装rsyslog的数据库脚本
8. 修改改http.conf支持php-fpm
9. 安装loganalyzer
10. 测试 

在192.168.205.7使用ansible安装MySQL Server

  1. ansible安装在此省略,安装完成后修改如下文件
    [root@centos7 ansible]#vi /etc/ansible/hosts 
    [servers]
    192.168.205.27
    192.168.205.37
    192.168.205.17
  2. 使用roles方式创建文件夹
    mkdir -p /data/ansible/roles/{apache,mysql,php}/{files,tasks}
  3. 下载mariadb10.2.25二进制版本到ansible服务器中的/data/ansible/roles/mysql/files中
    [root@centos7 files]#pwd
    /data/ansible/roles/mysql/files
    [root@centos7 files]#ls
    mariadb-10.2.25-linux-x86_64.tar.gz my.cnf
  4. 创建yaml文件
    [root@centos7 tasks]#pwd
    /data/ansible/roles/mysql/tasks
    [root@centos7 tasks]#cat main.yml 
    - include: install.yml
    [root@centos7 tasks]#cat install.yml 
    - name: adduser 在目标机器上创建用户mysql
    user: name=mysql system=yes home=/data/mysql create_home=no shell=/sbin/nologin
    - name: unarchive 解压缩mysql的二进制文件到目标计算机上
    unarchive: src=mariadb-10.2.25-linux-x86_64.tar.gz dest=/usr/local/ owner=mysql group=mysql
    - name: link 建立软链接文件
    file: src=/usr/local/mariadb-10.2.25-linux-x86_64 dest=/usr/local/mysql state=link
    - name: datadir 建立数据文件路径,并设置权限
    file: path=/data/mysql state=directory owner=mysql group=mysql
    - name: database 初始化安装脚本,生成系统数据库
    shell: chdir=/usr/local/mysql/ scripts/mysql_install_db --datadir=/data/mysql --user=mysql
    - name: path vars 将安装路径加入到PATH变量中
    copy: content=‘PATH=/usr/local/mysql/bin:$PATH‘ dest=/etc/profile.d/mysql.sh
    - name: config 复制配置文件模板到目标中
    copy: src=my.cnf dest=/etc/my.cnf
    - name: mycnf 修改配置文件的数据文件目录为/data/mysql
    shell: sed -i ‘/[mysqld]/a datadir=/data/mysql‘ /etc/my.cnf
    - name: service 复制启动脚本到启动目录中
    shell: cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    - name: start service 启动服务
    shell: /etc/init.d/mysqld start
    [root@centos7 ansible]#pwd
    /data/ansible
    [root@centos7 ansible]#cat mysql_role.yml 
    - hosts: 192.168.205.37
    roles:
    - mysql
  5. 安装mysql 到192.168.205.37中
    ansible-playbook mysql_role.yml 

在192.168.205.7中编译并使用ansible安装apache

  1. 安装相关的包
    yum install gcc prce-devel openssl-devel expat-devel -y
    下载相关包到目录/data/tmp中
    apr-1.7.0.tar.bz2
    apr-util-1.6.1.tar.bz2
    httpd-2.4.39.tar.bz2
  2. 编译安装
    for p in *.bz2 ;do tar xvf $p;done
    mv apr-1.7.0 httpd-2.4.39/srclib/apr
    mv apr-util-1.6.1 httpd-2.4.39/srclib/apr-util
    cd httpd-2.4.39/
    ./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
    make -j 4 && make install
  3. 打包httpd2.4
    tar -Jcvf /data/ansible/roles/apache/files/http2.4.39.tar.xz /app/httpd
  4. 在/data/ansible/roles/apache/tasks中建立如下yml文件
    [root@centos7 tasks]#pwd
    /data/ansible/roles/apache/tasks
    [root@centos7 tasks]#cat main.yml 
    - include: unarchive.yml
    - include: vars.yml
    - include: service.yml
    [root@centos7 tasks]#cat unarchive.yml
    - name: unarchive htppd
    unarchive: src=httpd-bin-2.4.39.tar.xz dest=/
    [root@centos7 tasks]#cat vars.yml 
    - name: vars
    copy: content=‘PATH=/app/httpd24/bin:$PATH‘ dest=/etc/profile.d/httpd.sh
    [root@centos7 tasks]#cat service.yml 
    - name: add user
    user:
    name: apache
    system: yes
    shell: /sbin/nologin
    - name: modify conf
    shell: sed -ri ‘s/^(.*) daemon$/1 apache/‘ /app/httpd24/conf/httpd.conf 
    - name: service
    shell: echo ‘/app/httpd24/bin/apachectl start‘ >> /etc/rc.d/rc.local
    - name: execute right
    file: 
    path: /etc/rc.d/rc.local
    mode: u+x,g+x,o+x
    - name: start service
    shell: apachectl start
    [root@centos7 ansible]#cat apache2.4.39-bin-install.yml 
    - hosts: 192.168.205.27
    roles:
    - apache
  5. 执行安装:
    ansible-playbook apache2.4.39-bin-install.yml 

在192.168.205.7中编译php并使用ansible安装php

  1. 实现编译安装php,注意使用--with-gd, 否测loganalyzer无法正常显示图形
    yum install libxml2-devel bzip2-devel libmcrypt-devel
    tar xvf php-7.3.7.tar.xz 
    cd php-7.3.7/
    ./configure --prefix=/app/php --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-mbstring --enable-xml --enable-sockets --enable-fpm --enable-maintainer-zts --disable-fileinfo --with-gd
    make && make install
  2. 创建基于ansible roles的yaml安装文件
    tar -Jcvf /data/ansible/roles/php/files/php-bin.7.3.7.tar.xz /app/php/
    cp php.ini-production /data/ansible/roles/php/roles/php/files
    cp sapi/fpm/init.d.php-fpm /data/ansible/roles/php/roles/php/files
    [root@centos7 files]#pwd
    /data/ansible/roles/php/files
    [root@centos7 files]#ls
    init.d.php-fpm php-bin.7.3.7.tar.xz php.ini-production
    [root@centos7 tasks]#pwd
    /data/ansible/roles/php/tasks
    [root@centos7 tasks]#ls
    install.yml main.yml
    [root@centos7 tasks]#cat main.yml
    - include: install.yml
    [root@centos7 tasks]#cat install.yml
    - name: unarchive
    unarchive:
    src: php-bin.7.3.7.tar.xz
    dest: /
    - name: copy php.ini
    copy:
    src: php.ini-production
    dest: /etc/php.ini
    - name: copy php-fpm service
    copy:
    src: init.d.php-fpm
    dest: /etc/init.d/php-fpm
    mode: u+x,g+x,o+x
    - name: add hph-fpm service
    shell: chkconfig --add php-fpm
    - name: copy php-fpm.conf
    copy:
    src: /app/php/etc/php-fpm.conf.default
    dest: /app/php/etc/php-fpm.conf
    remote_src: yes
    - name: copy www.conf
    copy:
    src: /app/php/etc/php-fpm.d/www.conf.default
    dest: /app/php/etc/php-fpm.d/www.conf
    remote_src: yes
    - name: modify config
    shell: sed -ri ‘s@(^.*) = nobody@1 = apache@‘ /app/php/etc/php-fpm.d/www.conf
    - name: start service
    shell: service php-fpm start
    [root@centos7 ansible]#pwd
    /data/ansible
    [root@centos7 ansible]#cat php-bin.7.3.7.yml 
    ---
    - hosts: 192.168.205.27
    remote_user: root
    roles:
    - php
  3. 安装装php
    ansible-playbook php-bin.7.3.7.yml 

在将要把日志存在数据库中的服务器中安装rsyslog相关文件此列为192.168.205.27

  1. 安装mysql模块相关的程序包
    yum install rsyslog-mysql
  2. 可以看到只安装了两个文件,mysql-createDB.sql为创建数据库用
    [root@centos7 etc]#rpm -ql rsyslog-mysql
    /usr/lib64/rsyslog/ommysql.so
    /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
  3. 将mysql-createDB.sql拷贝到mariadb服务器中
    scp /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql 192.168.205.37:data
  4. 配置rsyslog将日志保存到mysql中
    vi /etc/rsyslog.conf
    $ModLoad ommysql
    *.info;mail.none;authpriv.none;cron.none  :ommysql:192.168.205.37,Syslog,rsyslog,centos

在192.168.205.37中初始化数据库

  1. 安全初始化
    /user/local/mysql/bin/mysql_secure_installation
  2. 在mysql server上授权rsyslog能连接至当前服务器
    grant all on rsyslog.* to rsyslog@‘192.168.205.%‘ identified by ‘centos‘;
  3. 在mariadbserver中为rsyslog创建数据库及表;
    mysql < /data/mysql-createDB.sql 此文件来自于第17步

修改apache配置文件使其支持php

  1. 修改192.168.205.27中的httpd.conf配置文件
    vi /app/http2.4/conf/httpd.conf
    user apache
    group apache 
    <IfModule dir_module>
    DirectoryIndex index.php index.html
    </IfModule>
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    ProxyRequests Off
    ProxyPassMatch "^/.*.php(/.*)?$" "fcgi://localhost:9000/app/httpd24/htdocs/"

安装和配置loganalyzer

  1. 安装LogAnalyzer
    tar xf loganalyzer-4.1.5.tar.gz
    cp -a loganalyzer-4.1.5/src /app/http24/htdoc/loganalyzer
    cd /app/http24/htdoc/loganalyzer
    touch config.php
    chmod 666 config.php
  2. 配置loganalyzer
    systemctl restart httpd.service

测试

  1. 直接访问http://192.168.205.27/loganalyzer,此进要进行数据库连接,并初始化config.php,
    技术图片
  2. 完成后可以正常显示如下:
    技术图片
    技术图片
  3. 初始化完成后,将config.php文件进行安全加强
    cd /var/www/html/loganalyzer
    chmod 644 config.php

通过ansible安装mysql,apache,php,并实现rsyslog日志记录于MySQL中

标签:数据   ssl   测试   nal   roo   libxml   res   ice   设置权限   

热心网友 时间:2022-05-02 23:56

和mysql没关系,此报错是500错误,是服务器内部错误,和你的apache的配置参数有关系。

热心网友 时间:2022-05-03 01:14

端口呢?追问我apache安装的时候没有改过端口,就是本身的80端口。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 交互设计的“根”——七大定律 交互设计原则和理论2——七大定律 七大设计原则 附近的加油站有哪些 附近的加油站有哪些地方 我在济南花30万买了一套无房产证的房,现在急需用钱想去银行抵押贷款,最多能带出多少?谢谢 山东济南 四季养生的茶方是什么? 春季忽冷忽热,凉茶配方是什么? 梦见眉毛被剃掉了眉毛烂了眼皮上是水泡 怎样用纸箱做芭比娃娃的衣柜 &quot;晴天娃娃&quot;是做什么用的?怎么做? 网约车平台,大家觉得哪个好一些? 用绵花和彩纸手工!!!急! 四季养生茶饮配制方法?? 男生穿粉红色衣服代表他的性格是什么样的? 喜欢穿粉红衣服男生的特点? 喜欢穿粉色衣服的人是什么性格啊? 喜爱穿粉色衣服的人是什么样的性格 粉色象征着男生什么? 喜欢穿粉色衬衫的男生属于什么样的性格啊? 喜欢穿粉色衣服的男人 喜欢穿粉色衣服的男孩的性格怎样呢 聚缘中年同志聊天室 为什么进不了贵州同志聊天室 男生穿粉色给人的感觉 概率论与数理统计重要吗,该用什么样的心态和方法去学呢? 概率论和数理统计可应用在哪些方面? 求正解! 大学数学课程之一----概率论与数理统计 这门课程在那些领域有应用到的.或者说学这门课有啥用? 概率论与数理统计这门课程对其他工作有用吗? 概率论与数理统计学什么?有什么意义? 我是学会计的,概率论与数理统计这门课对会计有用吗 概率论与数理统计能解决什么问题 你好!我用的是apache+php+mysql+phpmyadmin,在phpmyadmin中建立了一个数据表(班级通讯录),然后在Dre 概率论与数理统计在软件工程中干什么 经管类专业学习『概率论与数理统计』有什么用??? 概率论与数理统计,好像在生活中,比如做生意什么的,*什么的,好像没什么用 高等数学、线性代数、概率论与数理统计、离散数学 分别对计算机软件专业起什么作用? 如何查询企业负面新闻 学概率论与数理统计要会什么? 一个负面新闻源头删除了,怎么还能看到? 有没有可以搜索企业负面新闻的专业软件? 网上我的负面新闻很多!我却看不到怎么办 怎样解决网络新闻舆情负面信息? 我们公司在网上有点负面新闻,一搜我们公司全是那条新闻 遇到网络负面新闻企业都是如何处理的?