1 月 112019
安装Remi及EPEL仓库
[root@localhost ~]# yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm [root@localhost ~]# yum makecache
安装Jitamin基本运行环境软件包
[root@localhost ~]# yum install unzip net-tools php56-php php56-php-pdo php56-php-mysql php56-php-mbstring php56-php-gd httpd mariadb mariadb-server git
开启防火墙端口
[root@localhost ~]# firewall-cmd --permanent --add-service=http success [root@localhost ~]# firewall-cmd --reload success [root@localhost ~]#
配置数据库
[root@localhost ~]# systemctl enable mariadb Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service. [root@localhost ~]# systemctl start mariadb [root@localhost ~]# [root@localhost ~]# mysql -uroot -p MariaDB [(none)]> create database jitamin; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> grant all on jitamin.* to jitamin@localhost; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> set password for jitamin@localhost=password('jitamin'); Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> exit Bye
修改php.ini时区配置
[root@localhost ~]# vi /opt/remi/php56/root/etc/php.ini date.timezone = Asia/Shanghai [root@localhost ~]# php56 --version PHP 5.6.40 (cli) (built: Jan 9 2019 12:21:54) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies [root@localhost ~]# [root@localhost ~]# cd /usr/bin/ [root@localhost bin]# ln -s php56 php
安装Composer
[root@localhost ~]# php56 -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" [root@localhost ~]# php56 -r "if (hash_file('sha384', 'composer-setup.php') === '93b54496392c062774670ac18b134c3b3a95e5a5e5c8f1a9f115f203b75bf9a129d5daa8ba6a13e2cc8a1da0806388a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" Installer verified [root@localhost ~]# php56 composer-setup.php All settings correct for using Composer Downloading... Composer (version 1.8.0) successfully installed to: /root/composer.phar Use it: php composer.phar [root@localhost ~]# php56 -r "unlink('composer-setup.php');" [root@localhost ~]# mv composer.phar /usr/bin/composer [root@localhost ~]#
使用普通用户权限下载并配置Jitamin
[root@localhost ~]# useradd harveymei [root@localhost ~]# su - harveymei [harveymei@localhost ~]$ git clone https://github.com/jitamin/jitamin.git Cloning into 'jitamin'... remote: Enumerating objects: 13, done. remote: Counting objects: 100% (13/13), done. remote: Compressing objects: 100% (13/13), done. remote: Total 14323 (delta 1), reused 0 (delta 0), pack-reused 14310 Receiving objects: 100% (14323/14323), 4.92 MiB | 663.00 KiB/s, done. Resolving deltas: 100% (10492/10492), done. [harveymei@localhost ~]$ [harveymei@localhost ~]$ cd jitamin/ [harveymei@localhost jitamin]$ cp .env.example .env [harveymei@localhost jitamin]$ [harveymei@localhost jitamin]$ vi .env APP_NAME=Jitamin APP_ENV=production APP_DEBUG=true APP_KEY=SomeRandomString APP_TIMEZONE=Asia/Shanghai APP_LOCALE=zh-CN APP_THEME=black APP_LOG=daily APP_LOG_LEVEL=error APP_URL=http://localhost DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=jitamin DB_USERNAME=jitamin DB_PASSWORD=jitamin
使用composer安装项目PHP依赖
[harveymei@localhost jitamin]$ composer install -o --no-dev > php -r "file_exists('.env') || copy('.env.example', '.env');" Loading composer repositories with package information Installing dependencies from lock file Package operations: 27 installs, 0 updates, 0 removals - Installing christian-riesen/base32 (1.3.1): Downloading (100%) - Installing christian-riesen/otp (1.4.3): Downloading (100%) - Installing eluceo/ical (0.10.1): Downloading (100%) - Installing erusev/parsedown (1.6.0): Downloading (100%) - Installing gregwar/captcha (v1.1.1): Downloading (100%) - Installing jitamin/json-rpc (v1.2.2): Downloading (100%) - Installing jitamin/picodb (v1.0.15): Downloading (100%) - Installing jitamin/picofeed (v0.1.25): Downloading (100%) - Installing jitamin/simple-logger (v1.0.2): Downloading (100%) - Installing jitamin/simple-queue (v1.0.1): Downloading (100%) - Installing jitamin/simple-validator (v1.0.2): Downloading (100%) - Installing symfony/polyfill-mbstring (v1.9.0): Downloading (100%) - Installing symfony/translation (v3.2.14): Downloading (100%) - Installing nesbot/carbon (1.33.0): Downloading (100%) - Installing paragonie/random_compat (v2.0.11): Downloading (100%) - Installing pimple/pimple (v3.0.2): Downloading (100%) - Installing symfony/yaml (v2.8.7): Downloading (100%) - Installing psr/log (1.0.2): Downloading (100%) - Installing symfony/debug (v3.4.14): Downloading (100%) - Installing symfony/console (v3.4.14): Downloading (100%) - Installing symfony/polyfill-ctype (v1.9.0): Downloading (100%) - Installing symfony/filesystem (v3.4.14): Downloading (100%) - Installing symfony/config (v3.4.14): Downloading (100%) - Installing robmorgan/phinx (v0.6.6): Downloading (100%) - Installing swiftmailer/swiftmailer (v5.4.5): Downloading (100%) - Installing symfony/event-dispatcher (v3.4.14): Downloading (100%) - Installing vlucas/phpdotenv (v2.5.1): Downloading (100%) Generating optimized autoload files [harveymei@localhost jitamin]$
创建并初始化数据库
[harveymei@localhost jitamin]$ vendor/bin/phinx migrate Phinx by Rob Morgan - https://phinx.org. 0.6.6 using config file ./phinx.php using config parser php using migration path database/migrations using seed path database/seeds warning no environment specified, defaulting to: mysql using adapter mysql using database jitamin == 20161222061456 CreateUsersTable: migrating == 20161222061456 CreateUsersTable: migrated 0.0055s == 20161222065743 CreateRememberMeTable: migrating == 20161222065743 CreateRememberMeTable: migrated 0.0027s == 20161222071058 CreateGroupsTable: migrating == 20161222071058 CreateGroupsTable: migrated 0.0031s == 20161222071513 CreateSettingsTable: migrating == 20161222071513 CreateSettingsTable: migrated 0.0017s == 20161222072332 CreateProjectsTable: migrating == 20161222072332 CreateProjectsTable: migrated 0.0021s == 20161222073541 CreateActionsTable: migrating == 20161222073541 CreateActionsTable: migrated 0.0018s == 20161222073852 CreateColumnsTable: migrating == 20161222073852 CreateColumnsTable: migrated 0.0026s == 20161222074452 CreateTasksTable: migrating == 20161222074452 CreateTasksTable: migrated 0.0032s == 20161222081719 CreateCommentsTable: migrating == 20161222081719 CreateCommentsTable: migrated 0.0025s == 20161222082417 CreateSwimlanesTable: migrating == 20161222082417 CreateSwimlanesTable: migrated 0.0023s == 20161222083010 CreateTagsTable: migrating == 20161222083010 CreateTagsTable: migrated 0.0018s == 20161222083245 CreateSubtasksTable: migrating == 20161222083245 CreateSubtasksTable: migrated 0.0020s == 20161222083935 CreateLinksTable: migrating == 20161222083935 CreateLinksTable: migrated 0.0046s == 20161222084249 CreateTransitionsTable: migrating == 20161222084249 CreateTransitionsTable: migrated 0.0034s == 20161222084940 CreateCustomFiltersTable: migrating == 20161222084940 CreateCustomFiltersTable: migrated 0.0023s == 20161222085354 CreateLastLoginsTable: migrating == 20161222085354 CreateLastLoginsTable: migrated 0.0020s == 20161222085809 CreatePasswordResetTable: migrating == 20161222085809 CreatePasswordResetTable: migrated 0.0019s == 20161222091052 CreatePluginSchemaVersionsTable: migrating == 20161222091052 CreatePluginSchemaVersionsTable: migrated 0.0018s == 20161222091605 CreateProjectActivitiesTable: migrating == 20161222091605 CreateProjectActivitiesTable: migrated 0.0028s == 20161222092217 CreateProjectDailyColumnStatsTable: migrating == 20161222092217 CreateProjectDailyColumnStatsTable: migrated 0.0025s == 20161222092312 CreateProjectDailyStatsTable: migrating == 20161222092312 CreateProjectDailyStatsTable: migrated 0.0019s == 20161222093033 CreateSchemaVersionTable: migrating == 20161222093033 CreateSchemaVersionTable: migrated 0.0014s == 20161222093333 CreateActionHasParamsTable: migrating == 20161222093333 CreateActionHasParamsTable: migrated 0.0019s == 20161222094356 CreateProjectHasRolesTable: migrating == 20161222094356 CreateProjectHasRolesTable: migrated 0.0016s == 20161222094851 CreateColumnHasRestrictionsTable: migrating == 20161222094851 CreateColumnHasRestrictionsTable: migrated 0.0023s == 20161222094859 CreateColumnHasMoveRestrictionsTable: migrating == 20161222094859 CreateColumnHasMoveRestrictionsTable: migrated 0.0024s == 20161222095207 CreateGroupHasUsersTable: migrating == 20161222095207 CreateGroupHasUsersTable: migrated 0.0030s == 20161222095739 CreateProjectHasCategoriesTable: migrating == 20161222095739 CreateProjectHasCategoriesTable: migrated 0.0017s == 20161222100221 CreateProjectHasFilesTable: migrating == 20161222100221 CreateProjectHasFilesTable: migrated 0.0016s == 20161222104316 CreateProjectHasGroupsTable: migrating == 20161222104316 CreateProjectHasGroupsTable: migrated 0.0017s == 20161222104338 CreateProjectHasMetadataTable: migrating == 20161222104338 CreateProjectHasMetadataTable: migrated 0.0019s == 20161222104355 CreateProjectHasStarsTable: migrating == 20161222104355 CreateProjectHasStarsTable: migrated 0.0020s == 20161222104411 CreateProjectHasNotificationTypesTable: migrating == 20161222104411 CreateProjectHasNotificationTypesTable: migrated 0.0016s == 20161222104427 CreateProjectHasUsersTable: migrating == 20161222104427 CreateProjectHasUsersTable: migrated 0.0022s == 20161222112306 CreateProjectRoleHasRestrictionsTable: migrating == 20161222112306 CreateProjectRoleHasRestrictionsTable: migrated 0.0022s == 20161222112615 CreateSubtaskTimeTrackingTable: migrating == 20161222112615 CreateSubtaskTimeTrackingTable: migrated 0.0019s == 20161222113157 CreateTaskHasExternalLinksTable: migrating == 20161222113157 CreateTaskHasExternalLinksTable: migrated 0.0016s == 20161222113205 CreateTaskHasFilesTable: migrating == 20161222113205 CreateTaskHasFilesTable: migrated 0.0017s == 20161222113217 CreateTaskHasLinksTable: migrating == 20161222113217 CreateTaskHasLinksTable: migrated 0.0032s == 20161222113234 CreateTaskHasMetadataTable: migrating == 20161222113234 CreateTaskHasMetadataTable: migrated 0.0018s == 20161222113239 CreateTaskHasTagsTable: migrating == 20161222113239 CreateTaskHasTagsTable: migrated 0.0017s == 20161222114814 CreateUserHasMetadataTable: migrating == 20161222114814 CreateUserHasMetadataTable: migrated 0.0020s == 20161222114828 CreateUserHasNotificationTypesTable: migrating == 20161222114828 CreateUserHasNotificationTypesTable: migrated 0.0016s == 20161222114837 CreateUserHasNotificationsTable: migrating == 20161222114837 CreateUserHasNotificationsTable: migrated 0.0024s == 20161222114844 CreateUserHasUnreadNotificationsTable: migrating == 20161222114844 CreateUserHasUnreadNotificationsTable: migrated 0.0016s == 20161225123941 AlterTableUsersAddApiTokenColumn: migrating == 20161225123941 AlterTableUsersAddApiTokenColumn: migrated 0.0042s == 20161228031419 AlterTableUsersAddLayoutColumn: migrating == 20161228031419 AlterTableUsersAddLayoutColumn: migrated 0.0031s == 20161231134810 AlterTableUsersAddDashboardColumn: migrating == 20161231134810 AlterTableUsersAddDashboardColumn: migrated 0.0124s == 20170105040003 AlterTableProjectsAddDefaultViewColumn: migrating == 20170105040003 AlterTableProjectsAddDefaultViewColumn: migrated 0.0028s == 20171228053201 AlterTableActionsAddPositionColumn: migrating == 20171228053201 AlterTableActionsAddPositionColumn: migrated 0.0150s All Done. Took 0.1642s [harveymei@localhost jitamin]$
[harveymei@localhost jitamin]$ vendor/bin/phinx seed:run Phinx by Rob Morgan - https://phinx.org. 0.6.6 using config file ./phinx.php using config parser php using migration path database/migrations using seed path database/seeds warning no environment specified, defaulting to: mysql using adapter mysql using database jitamin == LinkSeeder: seeding == LinkSeeder: seeded 0.0079s == SettingSeeder: seeding == SettingSeeder: seeded 0.0043s == UserSeeder: seeding == UserSeeder: seeded 0.0911s All Done. Took 0.1050s [harveymei@localhost jitamin]$
修改目录权限
[harveymei@localhost jitamin]$ chmod -R 777 bootstrap/cache/ [harveymei@localhost jitamin]$ chmod -R 777 storage/ [harveymei@localhost jitamin]$
清除缓存
[harveymei@localhost jitamin]$ php artisan config:cache Configuration cached successfully! [harveymei@localhost jitamin]$ php artisan route:cache Routes cached successfully! [harveymei@localhost jitamin]$
修改项目路径及配置Apache服务
[harveymei@localhost ~]$ exit logout [root@localhost ~]# [root@localhost ~]# mv /home/harveymei/jitamin/ /usr/local/ [root@localhost ~]# cd /usr/local/ [root@localhost local]# chown -R apache.apache jitamin/ [root@localhost local]#
修改默认主机名
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf ServerName localhost
添加虚拟主机配置
[root@localhost ~]# vi /etc/httpd/conf.d/jitamin.conf <VirtualHost *:80> ServerName 192.168.108.67 DocumentRoot "/usr/local/jitamin/public/" ErrorLog "logs/jitamin-error_log" CustomLog "logs/jitamin-access_log" combined <Directory "/usr/local/jitamin/public/"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>
检查配置文件并启动Apache服务
[root@localhost ~]# apachectl -t Syntax OK [root@localhost ~]# systemctl enable httpd Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. [root@localhost ~]# systemctl start httpd [root@localhost ~]#
使用浏览器访问Jitamin服务