当神不再是我们的信仰,那么信仰自己吧,努力让自己变好,不辜负自己的信仰!

知识小结

学习过程中的知识小结
* 路由问题


  • 登陆后跳转到登录前的页面?

  • 跳转之前,获取当前URL,拼接到GET参数,跳转到登录页面时就变成http://domain.com/login.php?url=detail.php, 到登录页面时, 判断有没有GET参数, 如果有, 登录成功后就跳转到之前的页面


  • Laravel 是怎么实现路由不用带命名空间调用的?

  • 使用class_alias()函数,可以为类起别名,通过别名调用类。


  • 运行PHP命令行,提示XXX模块未加载,可能是修改了PHP相关文件夹目录名字,但是php.ini中的extension_dir还没有修改

2018-2-26 更新

PHP
Laravel
Linux

PHP

Laravel

  • 知识点
    • php artisan make:model User -a 会生成Resource Controller,Migration,Factory,Model

Linux

  • 刚买好的云服务器需要配置SSH允许远程连接(腾讯云通过VNC设置)
    • 查看 ssh 服务是否启动
    • systemctl status sshd.service
      • 安装ssh
      • yum install ssh
      • 启动ssh服务器端
      • service sshd start
      • 开机自启动
      • chkconfig sshd on
    • 在文件最后面另起一行添加AllowUsers root
    • 重启ssh
    • service sshd restart
  • 硬盘分区与挂载
    • 创建分区
      • 查看磁盘状态
      • fdisk -l
      • 对未使用的进行分区操作
      • fdisk /dev/vdb1
      • 分区默认操作基本就可以
    • 创建文件系统
      • 查看是否有文件系统
      • df -h
      • 为分区好的磁盘创建文件系统
      • mke2fs -t ext4 /dev/vdb1
      • 创建好之后使用df -h还是看不到的,还需要挂载
    • 挂载
      • mount /dev/vdb1 /mnt
    • 取消挂载
      • umount /mnt
  • 搭建 Laravel 环境
    • 安装 nginx (-y 可以默认选择y, 不需要再手动输入y确认安装)
      • yum install nginx -y
      • 修改 /etc/nginx/conf.d/default.conf,去除对 IPv6 地址的监听

      • 启动 nginx
      • systemctl start nginx
      • 开机启动
      • systemctl enable nginx
    • 安装 MySQL
      • yum install mariadb-server -y
      • 安装完成后,启动 MySQL 服务:
      • systemctl start mariadb
      • 设置 MySQL 账户 root 密码
      • /usr/bin/mysql_secure_installation
      • 将 MySQL 设置为开机自动启动
      • systemctl enable mariadb
    • 安装 PHP 及相关依赖(由于默认的 yum 源 php 版本低于 Laravel 要求,所以需要添加第三方源:)
      • rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
      • rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
      • yum -y install mariadb-server php71w php71w-fpm php70w-mysql php71w-mcrypt php71w-dom php71w-mbstring
      • yum update -y
      • yum install php71w php71w-fpm php71w-cli php71w-common php71w-gd php71w-mbstring php71w-mcrypt php71w-pdo php71w-xml mariadb-server
    • 安装 composer
      • curl -sS https://getcomposer.org/installer | php
      • mv composer.phar /usr/local/bin/composer
      • 设置环境变量(建议全局设置)
      • export PATH=$PATH:/root/.config/composer/vendor/bin
      • 为了避免 composer 安装应用过程中出现内存不足的问题,我们预先设置一下 swap
      • /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
      • /sbin/mkswap /var/swap.1
      • /sbin/swapon /var/swap.1
    • 配置 php-fpm
      • 查看占用
      • netstat -nlpt | grep php-fpm
      • 启动php-fpm
      • systemctl start php-fpm
      • 设置为开机自启动
    • systemctl enable php-fpm
    • 配置站点

  • 任务加入后台nohup
    • nohup php artisan queue:work --tries=3
  • Nginx
    • 启动 nginx
    • nginx -c /etc/nginx/nginx.conf
    • 重启
    • nginx -s reload
    • 关闭
    • nginx -s stop
  • Crontab
    1. 检查服务
      • crontab -l
      • 没有则使用yum安装
      • yum -y install vixie-cron crontabs
    2. 命令格式
      • crontab [-u user] file
      • crontab [-u user] [ -e | -l | -r ]
    3. 命令参数
      • -u user:用来设定某个用户的crontab服务;
      • filefile 是命令文件的名字,表示将file做为crontab的任务列表文件并载入 crontab。如果在命令行中没有指定这个文件,crontab 命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab*
      • -e:编辑某个用户的crontab 文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
      • -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
      • -r:从/var/spool/cron 目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
      • -i:在删除用户的crontab文件时给确认提示。
    4. 文件格式
      “`
      minute hour day month week command
      # For details see man 4 crontabs
      # Example of job definition:
      .———————————- minute (0 – 59) 表示分钟
      | .——————————- hour (0 – 23) 表示小时
      | | .—————————- day of month (1 – 31) 表示日期
      | | | .————————- month (1 – 12) OR jan,feb,mar,apr … 表示月份
      | | | | .———————- day of week (0 – 6) 表示星期(0 或 7 表示星期天)
      | | | | | .——————- username 以哪个用户来执行
      | | | | | | .—— command 要执行的命令,可以是系统命令,也可以是自己编写的脚本文件
      | | | | | | |

      <ul>
      <li>
      <ul>
      <li>
      <ul>
      <li>
      <ul>
      <li>
      <ul>
      <li>user-name command to be executed
      “`

  • 实例参考
    • 每分钟执行一次命令
    • * * * * * command
    • 每十分钟执行一次
    • */10 * * * * command
    • 每小时执行一次命令
    • * */1 * * * command
  • 命令
    # 编辑 crontab
    crontab -e
    # 删除所有 crontab
    crontab -r
  • 设置服务命令
    | 任务 | 旧指令 | 新指令 |
    |——————-|——————————-|——————————————————|
    | 使某服务自动启动 | chkconfig –level 3 httpd on | systemctl enable httpd.service |
    | 使某服务不自动启动 | chkconfig –level 3 httpd off | systemctl disable httpd.service |
    | 检查服务状态 | service httpd status | systemctl status httpd.service(服务详细信息) |
    | 检查服务状态 | service httpd status | systemctl is-active httpd.service (仅显示是否 Active) |
    | 显示所有已启动的服务 | chkconfig –list | systemctl list-units –type=service |
    | 启动某服务 | service httpd start | systemctl start httpd.service |
    | 停止某服务 | service httpd stop | systemctl stop httpd.service |
    | 重启某服务 | service httpd restart | systemctl restart httpd.service |
  • 常用包
    • xshell互传文件
      • yum install lrzsz
      • 下载文件
      • sz $filename
      • 上传文件
      • rz $filename
  • Git

    • 使用yum安装
      • yum install git
    • 使用源码安装
      • 安装依赖库
      • yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
      • 安装编译工具
      • yum install gcc perl-ExtUtils-MakeMaker
      • 下载 Git
        • 选一个目录,用来放下载下来的安装包,这里将安装包放在 /usr/local/src目录里
        • cd /usr/local/src
        • 选择一个源码包下载
        • wget https://www.kernel.org/pub/software/scm/git/git-2.10.0.tar.gz
        • 解压源码包
        • tar -zvxf git-2.10.0.tar.gz
        • 解压后进入 git-2.10.0 文件夹
        • cd git-2.10.0
        • 执行编译
        • make all prefix=/usr/local/git
        • 编译完成后, 安装到 /usr/local/git 目录下
        • make install prefix=/usr/local/git
        • 将 git 目录加入 PATH
        • echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc
        • 生效环境变量
        • source /etc/bashrc

    HTTP 错误

    点赞

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注