Я не один раз встановлював під windows всякі WAMP'и для веб розробки, але треба визнати, що краще все таки розробляти сайти, які в підсумку будуть запускатися під * nix і апач, на схожій системі, а не windows. Так що коли мені потрапив до рук Mac, я подумав, агов, так OS X - це ж теж гілка Unix, з веб розробкою повинно бути простіше, і я вгадав.
Якщо хто не знав, OS X за замовчуванням поставляється з веб сервером Apache, його потрібно тільки включити. Зате mysql в поставку не входить, так що є з чим повозитися, приступимо.
запуск Apache
І набрати команду:
Все працює, тепер можна зайнятися і установкою MySql.
1) Завантажуємо останній дистрибутив з офіційного сайту.
Замість реєстрації не забудьте натиснути на мааленькая посилання внизу No thanks, just start my download.
Інакше доведеться пройти реєстрацію з купою полів, попереджаю відразу. Oracle, що тут скажеш.
На момент написання статті актуальною версією MySql була 5.6.15, так що я вибрав на закачування
Mac OS X 10.7 (x86, 64-bit), DMG Archive
2) Встановлюємо
Запускаємо завантажений установник і бачимо наступне:
1 - власне інсталятор MySql
Cоглашаемся зі всіх запропонованих, в кінці вводимо пароль root
2 - додається в системну панель властивостей, що дозволяє з панелі зупиняти, запускати сервіс
При установці потрібно вибрати ставити тільки чи для поточного користувача або для всіх
Після установки в налаштуваннях ми можемо знайти пункт MySql
Звідки можна управляти сервісом MySql
3 - автостарт сервісу при запуску Mac'а
Так само як і в першому пункті, просто погоджуємося з усім що скаже інсталятор.
3) Спробуємо в консолі виконати команду mysql
Пише що не може знайти. Що ж, треба додати шлях до виконуваних файлів mysql до нас в профіль, можна зробити це вручну - створити / відредагувати файл .bash_profile в домашній папці користувача, або просто виконати цю команду в консолі:
12 thoughts on "Установка і настройка Apache + Mysql на OS X 10.9 Mavericks"
Доброго дня.
Хочу зробити сервер на Mac OS X Server 3,1
Довго, але запустив.
Тепер потрібно створити сервер MySql
Скачав поставив, команди виконав.
А тепер дурне питання напевно, як підключиться до нього, керувати базами і т.д.
На скільки я розумію можна через Sequel Pro або звити PhpMyAdmin
Доброго дня.
Насправді як підключатися до Mysql сервера - залежить виключно від звичок і завдання. Якщо нормально налаштований apache - найпростішим рішенням буде установка phpMyAdmin, можна так само якимось зовнішнім софтом.
Але я нерідко вдаюся до консолі. Запускаємо консоль і пишемо
mysql -u -p
і вводимо пароль.
Ну а далі вже USE;
та інші команди в залежності від завдання. Мінуси консолі - часто проблеми з кодуваннями, що не наочно, погано з історією команд.
Плюси - працює скрізь, швидко, не потрібно ставити нічого додатково.
Досвід буває корисний коли колупатися на віртуальній машині без GUI і без встановленого phpmyadmin. Оскільки інструменти спрощують нам життя, але непогано вміти обходитися без них.
Доброго дня.
З базами даних розібрався, спасибі, працює.
Але тут нова проблема.
Встановлюю wordpress, працює. Включаю в ньому% postname% і отримую 404 not found.
.htaccess c кодом:
RewriteEngine On
RewriteBase /
RewriteRule ^ index \ .php $ - [L]
RewriteCond%! -f
RewriteCond%! -d
RewriteRule. /index.php [L]
Module mod_rewrite ніби як встановлено, показав phpinfo
Що робити, куди копати?
Підкажіть будь ласка.
Дивно, спеціально з нуля поставив новий wordpress. Встановив (навіть не дав прав на запис, так що вручну заповнив і wp-config.php по тому що мені запропонував вордпресс і .htaccess)
Код в .htaccess у мене наступний:
RewriteEngine On
RewriteBase /
RewriteRule ^ index \ .php $ - [L]
RewriteCond%! -f
RewriteCond%! -d
RewriteRule. /index.php [L]
Все виявилося просто і нерозумно з мого боку. Я використовую програму Server.app В налаштуваннях кожного сайту що створюємо потрібно в Edit Advanced Settings ставити галочку на Allow overrides using .htaccecces files
І тоді для кожного сайту буде працювати свій .htaccecces
sudo chown -R _www test.com
або права доступу
sudo chmod -R 777 test.com
Але, повторюся, робити так варто лише у випадках розробки для себе речей які ніколи не побачать світло на реальному сервері. В іншому випадку слід відразу звикати до акуратного проставлення прав доступу.
Не всі але щось зрозумів.
Ще раз можна чітко поясніть, які права і для кого і як потрібні для безпечної роботи сайтів мережі. Дуже важливо. Кілька сайтів випустив в мережу, деяким якийсь «турок» перезаписав index.php щоб його. Розумію що якась діра у мене є.
Допоможіть дуже важливо і терміново.
Дякуємо!
У двох реченнях складно відповісти що потрібно для безпечної роботи, тим більше що завжди знайдеться новий баг який змусить по новому поглянути на безпеку (heartbleed, shellshock з останніх). Базово потрібно думати наступне:
- Apache (так в принципі будь-який веб сервер, nginx наприклад) потрібно запускати від окремого користувача, а не root (щоб якщо вже зловмисник отримав доступ до Шеллу - накоїти делов зміг тільки в папці сайту, а не по всій системі)
- на папки ставити права доступу 755, на файли 644, це дає право на читання всім, а на запис - тільки власнику (користувачу з під якого запущений веб сервер), це обмежить від запису на іншими користувачами на shared хостингах
- варто розуміти вищесказане, що це як і раніше дозволить в разі уразливого скрипта перезаписувати файли з правом 644. Адже скрипт виконується від імені власника apache і всі файли всередині папки сервера мають того ж власника. Все як завжди, система має міцність рівну міцності найслабшої ланки. Тому якщо Ви впевнені що що то не повинно записуватись взагалі, ставте 444 на ці файли, щоб навіть сам apache і скрипти не могли поміняти вміст наприклад index.php. (Якщо звичайно з php можна викликати chmod і поміняти право доступу до будь-якого файлу). Не варто забувати що нерідко тупо крадуть ftp, і тоді все права доступу взагалі не важливі. Або ламають провайдера і по тихій обробляють сайти клієнтів. Варіантів тьма.
Безпека - це комплекс заходів, не допоможе поставити броньовані двері з забором якщо не поставили дах.
Я не вважаю себе гуру в веб програмуванні і тим більше безпеки, але моїх знань достатньо, щоб зрозуміти, що одних загороджувальних заходів недостатньо. Завжди буду перебувати нові дірки, потрібно крім захисту планувати відхідні шляхи - наприклад грамотно помістити сайт в git або будь-яку іншу систему контролю версій, і налаштувати щоденний забір змін. Це дозволить у разі появи зарази побачити де вона оселилася, і визначити часові рамки. Робити бекап логів, щоб було що посомтреть для вивчення точки входу зарази. Але повторюся, срібної кулі немає ніде, в безпеки в тому числі. Я постарався лише задати Вам вектори для вивчення.
Дуже допомогли, спасибі.
Радий допомогти )
І спасибі за доповнення, все таки складно пригадати всі нюанси, особливо ті, які не потрібні або навпаки робиш на автоматі.
Включення Virtual Hosts вирубує Apache
після зворотного закоменнтірованія рядки в
/etc/apache2/httpd.conf
#Include /private/etc/apache2/extra/httpd-vhosts.conf
сервер назад працює але тільки localhost (
У чому може бути конфлікт?
Складно сказати, потрібно дивитися логи з помилками. Явно що то криво в httpd-vhosts.conf