Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Liên kết dự án không hoạt động trên Máy chủ Wamp

Cách tạo Máy chủ ảo trong WampServer

WAMPServer 3 đã làm cho quá trình này dễ dàng hơn nhiều!

Bạn có thể làm hầu hết mọi thứ từ một tiện ích được cung cấp như một phần của WAMPServer.

  • Tạo một thư mục bên trong để chứa project.site của bạn. Điều này có thể nằm dưới C:\ wamp \ www \ thư mục hoặc trong một thư mục hoàn toàn riêng biệt như C:\ websites .

  • Tạo một thư mục bên trong vị trí bạn đã chọn EG C:\ websites \ project1 \ www hoặc dưới c:\ wamp \ www \ project1 \ www

  • Bây giờ hãy mở localhost wampmanager-> localhost và nhấp vào liên kết Thêm máy chủ ảo trong phần CÔNG CỤ trên trang chủ.

Bạn sẽ thấy một trang như thế này:

  • Điền vào các trường như được chỉ định bởi hướng dẫn ở trên mỗi trường

  • Cấu hình Máy chủ ảo sẽ được tạo cho bạn.

  • Bây giờ bạn phải khởi động lại DNS Cache. Bạn có thể thực hiện việc này từ các menu wampmanager như sau nhấp chuột phải vào wampmanager-> Công cụ-> Khởi động lại DNS . DNS Cache sẽ được khởi động lại và sau đó Apache cũng sẽ bị dừng và khởi động lại. Khi biểu tượng wampmanager chuyển sang màu xanh lục trở lại thì tất cả đã hoàn thành.

  • Bây giờ bạn phải tạo một index.php đơn giản tập tin hoặc cài đặt trang web của bạn vào thư mục bạn đã tạo ở trên.

  • Giả sử VH của bạn được gọi là project.dev Bạn sẽ thấy tên đó trong Máy chủ ảo của bạn Phần của trang chủ WAMPServer.

  • Bạn có thể khởi chạy trang web từ menu này hoặc chỉ cần sử dụng Tên miền mới trong thanh địa chỉ EG project1.dev và khởi chạy trang web.

Cơ chế WAMPServer 2.5 cũ hoặc nếu bạn muốn thực hiện tất cả theo cách thủ công

Đã có sự thay đổi khái niệm trong WampServer 2.5 trở lên và có lý do chính đáng cho sự thay đổi này!

Trong WampServer, hiện nay chúng tôi khuyến khích MẠNH MẼ tạo Máy chủ ảo cho mỗi dự án của bạn, ngay cả khi bạn giữ chúng trong \ wamp \ www \ subfolder cấu trúc.

Tài liệu về máy chủ ảo

Ví dụ về Máy chủ ảo

Trang chủ WampServer ( \ wamp \ www \ index.php ) bây giờ hy vọng bạn đã tạo Máy chủ ảo cho tất cả các dự án của mình và do đó sẽ chỉ hoạt động bình thường nếu bạn làm như vậy.

Lịch sử

Để giúp người mới bắt đầu sử dụng WampServer học PHP Apache và MySQL dễ dàng hơn, chúng tôi khuyên bạn nên tạo các thư mục con trong \ wamp \ www \ thư mục.

wamp
  |-- www
       |-- Chapter1
       |-- Chapter2
       |-- etc

Các thư mục con này sau đó sẽ hiển thị dưới dạng liên kết trong Trang chủ WampServer trong menu có tên 'Dự án của bạn' và các liên kết này sẽ chứa liên kết đến localhost / subfoldername .

Chỉ được chấp nhận đối với các hướng dẫn đơn giản

Điều này khiến cuộc sống của người mới bắt đầu trở nên dễ dàng và hoàn toàn có thể chấp nhận được, chẳng hạn như những hướng dẫn sau đây để học viết mã PHP. Trên thực tế, nếu bạn sử dụng cơ chế này, nó thường gây ra sự cố vì cấu hình các trang web đang hoạt động sẽ không khớp với cấu hình phát triển của bạn.

Vấn đề để phát triển trang web thực sự.

Tất nhiên, lý do cho điều này là cài đặt DocumentRoot mặc định cho wamp là

DocumentRoot "c:/ wamp / www /"

cho dù thư mục con của bạn được gọi là gì. thư mục ở đầu cấu trúc phân cấp tệp trang web. Loại mã này tồn tại trong nhiều khuôn khổ và CMS, ví dụ như WordPress và Joomla, v.v.

Ví dụ

Giả sử chúng ta có một dự án có tên là project1 được tổ chức trong wamp \ www \ project1 và chạy không chính xác dưới dạng localhost / project1 / index.php

Đây là những gì sẽ được báo cáo bởi một số lệnh PHP được đề cập:

$_SERVER['HTTP_HOST'] = localhost
$_SERVER['SERVER_NAME'] = localhost
$_SERVER['DOCUMENT_ROOT'] = c:/wamp/www

Bây giờ nếu chúng ta đã xác định chính xác trang web đó bằng định nghĩa Máy chủ ảo và chạy nó dưới dạng http:// project1 kết quả trên trang web phát triển WAMPServer sẽ khớp với kết quả nhận được khi ở trên môi trường được lưu trữ trực tiếp.

$_SERVER['HTTP_HOST'] = project1
$_SERVER['SERVER_NAME'] = project1
$_SERVER['DOCUMENT_ROOT'] = c:/wamp/www/project1

Bây giờ, sự khác biệt này thoạt đầu có vẻ nhỏ nhưng nếu bạn đang sử dụng một khuôn khổ như WordPress hoặc một trong những CMS như Joomla chẳng hạn, thì điều này có thể và thực sự gây ra sự cố khi bạn di chuyển trang web của mình sang một máy chủ trực tiếp.

Cách tạo Máy chủ ảo trong WampServer

Trên thực tế, điều này về cơ bản sẽ hoạt động giống nhau đối với bất kỳ máy chủ Apache nào, chỉ khác ở chỗ bạn có thể tìm thấy các tệp cấu hình Apache.

Có 3 bước để tạo Máy chủ ảo đầu tiên của bạn trong Apache và chỉ 2 bước nếu bạn đã xác định một máy chủ.

  1. Tạo (các) định nghĩa Máy chủ ảo
  2. Thêm tên miền mới của bạn vào tệp HOSTS.
  3. Bỏ ghi chú dòng trong httpd.conf bao gồm tệp định nghĩa Máy chủ ảo.

Bước 1 , Tạo (các) định nghĩa Máy chủ ảo

Chỉnh sửa tệp có tên httpd-hosts.conf mà WampServer sống ở

\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf

(Số phiên bản Apache có thể khác nhau, hãy tham gia vào não bộ trước khi tiếp tục)

Nếu đây là lần đầu tiên bạn chỉnh sửa tệp này, hãy xóa mã ví dụ mặc định, mã này không có giá trị sử dụng.

Tôi giả sử chúng ta muốn tạo một định nghĩa cho một trang web có tên là project1 sống ở

\wamp\www\project1

Rất quan trọng, trước tiên, chúng ta phải đảm bảo rằng localhost vẫn hoạt động để đó là định nghĩa VHOST đầu tiên mà chúng ta sẽ đưa vào tệp này.

<VirtualHost *:80>
    DocumentRoot "c:/wamp/www"
    ServerName localhost
    ServerAlias localhost
    <Directory  "c:/wamp/www">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

Bây giờ chúng tôi xác định dự án của mình:và điều này tất nhiên bạn làm cho từng dự án của mình khi bạn bắt đầu một dự án mới.

<VirtualHost *:80>
    DocumentRoot "c:/wamp/www/project1"
    ServerName project1
    <Directory  "c:/wamp/www/project1">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

LƯU Ý:Mỗi Máy chủ ảo là DocumentRoot của chính nó được xác định. Ngoài ra còn có nhiều tham số khác mà bạn có thể thêm vào định nghĩa Máy chủ ảo, hãy kiểm tra tài liệu Apache.

Nhỏ sang một bên

Cách máy chủ ảo hoạt động trong Apache:Định nghĩa đầu tiên trong tệp này cũng sẽ là trang web mặc định, vì vậy nếu tên miền được sử dụng trong trình duyệt không khớp với bất kỳ miền được lưu trữ ảo nào được xác định thực sự, việc đặt localhost trở thành miền đầu tiên trong tệp do đó đó là trang web được tải nếu một nỗ lực tấn công chỉ sử dụng Địa chỉ IP của bạn. Vì vậy, nếu chúng tôi đảm bảo rằng bảo mật Apache cho miền này LUÔN ĐƯỢC ĐẶT RA

Require local

bất kỳ cuộc tấn công thông thường nào từ một địa chỉ bên ngoài sẽ nhận được lỗi và không vào được PC của bạn, nhưng nếu bạn viết sai chính tả miền, bạn sẽ được hiển thị trên trang chủ WampServer, vì bạn đang sử dụng cùng một PC với WampServer và local .

Bước 2 :

Thêm tên miền mới của bạn vào tệp HOSTS Bây giờ chúng ta cần thêm tên miền mà chúng ta đã sử dụng trong định nghĩa Máy chủ ảo vào tệp HOSTS để windows biết nơi tìm nó. Điều này tương tự như tạo bản ghi DNS A, nhưng nó chỉ hiển thị trong trường hợp này trên PC cụ thể này.

Chỉnh sửa C:\ windows \ system32 \ drivers \ etc \ hosts

Tệp không có phần mở rộng và nên giữ nguyên như vậy. Cẩn thận với notepad, vì nó có thể thử và thêm .txt nếu bạn không có trình soạn thảo nào tốt hơn. Tôi khuyên bạn nên tải xuống Notepad ++, phần mềm miễn phí và là một trình soạn thảo rất tốt.

Ngoài ra, đây là một tệp được bảo vệ nên bạn phải chỉnh sửa nó với đặc quyền của quản trị viên, vì vậy hãy khởi chạy trình chỉnh sửa của bạn bằng cách sử dụng Chạy với tư cách Quản trị viên tùy chọn menu.

Tệp máy chủ sẽ trông giống như thế này khi bạn đã hoàn thành các chỉnh sửa này

127.0.0.1 localhost
127.0.0.1 project1

::1 localhost
::1 project1

Lưu ý rằng bạn nên có các định nghĩa tại đây cho địa chỉ lặp lại IPV4 127.0.0.1 và cả địa chỉ lặp lại IPV6 ::1 vì Apache hiện đã biết IPV6 và trình duyệt sẽ sử dụng IPV4 hoặc IPV6 hoặc cả hai. Tôi không biết cách nó quyết định sử dụng cái nào, nhưng nó có thể sử dụng nếu bạn đã bật ngăn xếp IPV6 và hầu hết hệ điều hành window đều làm như XP SP3.

Bây giờ chúng ta phải yêu cầu windows làm mới bộ đệm tên miền của nó, vì vậy hãy khởi chạy lại cửa sổ lệnh bằng cách sử dụng Chạy với tư cách Quản trị viên tùy chọn menu một lần nữa và thực hiện như sau.

net stop dnscache
net start dnscache

Điều này buộc các cửa sổ phải xóa bộ nhớ cache tên miền của nó và tải lại nó, khi tải lại, nó sẽ đọc lại tệp HOSTS để bây giờ nó biết về miền project1 .

Bước 3 :Bỏ ghi chú dòng trong httpd.conf bao gồm tệp định nghĩa Máy chủ ảo.

Chỉnh sửa httpd.conf của bạn, sử dụng menu wampmanager.exe để đảm bảo bạn chỉnh sửa đúng tệp.

Tìm dòng này trong httpd.conf

# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

Và chỉ cần xóa # để bỏ ghi chú dòng đó.

Để kích hoạt thay đổi này khi bạn đang chạy Apache, bây giờ chúng ta phải dừng và khởi động lại dịch vụ Apache.

wampmanager.exe -> Apache -> Service -> Restart Service

Bây giờ nếu biểu tượng WAMP trong khay hệ thống không chuyển sang màu XANH LÁ nữa, điều đó có nghĩa là bạn có thể đã làm sai điều gì đó trong \ wamp \ bin \ apache \ apache2.4.9 \ conf \ extra \ httpd-hosts.conf tệp.

Nếu vậy, đây là một cơ chế hữu ích để tìm ra điều gì sai. Nó sử dụng một tính năng của exe Apache (httpd.exe) để kiểm tra các tệp cấu hình của nó và báo cáo lỗi theo tên tệp và số dòng.

Khởi chạy cửa sổ lệnh.

cd \wamp\bin\apache\apache2.4.9\bin
httpd -t

Vì vậy, hãy sửa lỗi và kiểm tra lại cho đến khi bạn nhận được đầu ra

Syntax OK

Bây giờ còn một điều nữa.

Thực tế có 2 mục menu mới trên hệ thống menu wampmanager. Một có tên là 'Dự án của tôi' được bật theo mặc định. Và cái thứ hai, được gọi là 'Máy chủ ảo của tôi' , không được kích hoạt theo mặc định.

'My Projects' sẽ liệt kê bất kỳ thư mục con nào của thư mục \ wamp \ www và cung cấp một liên kết để khởi chạy trang web trong thư mục con đó. Như tôi đã nói trước đó, nó khởi chạy 'project1' chứ không phải 'localhost / project1', vì vậy công việc liên kết, chúng tôi phải tạo định nghĩa Máy chủ ảo để làm cho liên kết này thực sự khởi chạy trang web đó trong trình duyệt của bạn, nếu không có định nghĩa Máy chủ ảo, nó có khả năng khởi chạy tìm kiếm trên web cho tên trang web dưới dạng từ khóa hoặc chỉ trả về điều kiện không tìm thấy trang web.

Mục menu 'Máy chủ ảo của tôi' hơi khác một chút. Nó tìm kiếm tệp được sử dụng để xác định Máy chủ ảo (chúng tôi sẽ đến đó sau một phút) và tạo liên kết menu cho từng tham số ServerName mà nó tìm thấy và tạo một mục menu cho mỗi thông số. Điều này có vẻ hơi khó hiểu khi chúng ta tạo. định nghĩa Máy chủ ảo cho các thư mục con của thư mục \ wamp \ www, một số mục sẽ xuất hiện trên cả menu 'Dự án của tôi' và menu 'Máy chủ ảo của tôi'.

Làm cách nào để bật menu 'Máy chủ ảo của tôi' khác này?

  • Tạo bản sao lưu của tệp \ wamp \ wampmanager.tpl, đề phòng trường hợp bạn mắc lỗi, đây là một tệp rất quan trọng.
  • Chỉnh sửa \ wamp \ wampmanager.tpl
  • Tìm tham số này ; WAMPPROJECTSUBMENU , nó nằm trong phần '[Menu.Left] ".
  • Thêm thông số mới này ; WAMPVHOSTSUBMENU trước hoặc sau ; WAMPPROJECTSUBMENU tham số.
  • Lưu tệp.
  • Bây giờ, hãy nhấp chuột phải vào biểu tượng wampmanager và chọn 'Làm mới'. Nếu điều này không thêm menu, hãy 'thoát' và khởi động lại wampmanager.

Ghi chú lớn Menu mới sẽ chỉ xuất hiện nếu bạn đã xác định một số Máy chủ ảo! Nếu không, bạn sẽ không thấy sự khác biệt nào cho đến khi xác định được VHOST.

Bây giờ nếu bạn đưa điều này đến phần mở rộng hợp lý của nó

Bây giờ bạn có thể di chuyển hoàn toàn mã trang web của mình ra bên ngoài \ wamp \ cấu trúc thư mục đơn giản bằng cách thay đổi tham số DocumentRoot trong định nghĩa VHOST. Vì vậy, ví dụ, bạn có thể làm điều này:

Tạo một thư mục trên đĩa wamp hoặc bất kỳ đĩa nào khác (hãy cẩn thận với ổ đĩa mạng, chúng phức tạp hơn một chút)

D:
MD websites
CD websites
MD example.com
CD example.com
MD www

Bây giờ, bạn sao chép mã trang web của mình vào hoặc bắt đầu tạo mã đó trong \ websites \ example.com \ www và xác định VHOST của bạn như sau:

<VirtualHost *:80>
    DocumentRoot "d:/websites/example.com/www"
    ServerName example.dev
    ServerAlias www.example.dev
    <Directory  "d:/websites/example.com/www">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    php_flag display_errors Off
    php_flag log_errors On

    php_value max_upload_size 40M
    php_value max_execution_time 60
    php_value error_log "d:/wamp/logs/example_com_phperror.log"
</VirtualHost>

Sau đó, thêm miền phát triển mới này vào tệp HOSTS:

127.0.0.1 localhost
::1 localhost

127.0.0.1 project1
::1 project1

127.0.0.1 example.dev
::1 example.dev

LƯU Ý: Không nên sử dụng ServerName hoặc ServerAlias ​​giống với tên miền thực của bạn, vì nếu chúng tôi đã sử dụng example.com làm Tên máy chủ, điều đó có nghĩa là chúng tôi không thể truy cập trực tiếp được nữa trang web từ PC này vì nó sẽ hướng example.com đến 127.0.0.1 tức là PC này và không ra ngoài internet.

CŨNG ĐƯỢC:Thấy rằng tôi đã cho phép trang web này được truy cập từ internet từ bên trong các định nghĩa VHOST, thay đổi này sẽ chỉ áp dụng cho trang web này và không áp dụng cho trang web khác. Rất hữu ích khi cho phép khách hàng xem các thay đổi của bạn trong một giờ hoặc lâu hơn mà không cần phải sao chép chúng vào máy chủ trực tiếp. Điều này có nghĩa là chúng tôi phải chỉnh sửa tệp này theo cách thủ công để bật và tắt quyền truy cập này thay vì sử dụng Đặt trực tuyến / Mục menu ngoại tuyến trên wampmanager.

Ngoài ra, tôi đã thêm một số sửa đổi đối với cấu hình PHP, một lần nữa sẽ chỉ áp dụng cho một trang web này. Rất hữu ích khi duy trì một trang web có yêu cầu cụ thể không giống như tất cả các trang web khác mà bạn duy trì. Tôi đoán chúng ta có thể giả định từ các thông số được sử dụng mà nó có một trang đang chạy dài ở đâu đó và nó được viết rất tệ và sẽ không chạy với lỗi hiển thị trên trình duyệt mà không làm cho trang bị lộn xộn khủng khiếp. Hãy tin tôi rằng các trang web như thế này vẫn tồn tại và mọi người vẫn muốn chúng được duy trì không tốt . Nhưng điều này có nghĩa là chúng tôi chỉ phải thay đổi các thông số này cho trang web cụ thể này và không phải trên toàn cầu cho tất cả các trang web Ảo chạy trên WampServer.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Java:Chèn nhiều hàng vào MySQL với PreparedStatement

  2. Giới thiệu về các kiểu dữ liệu SQL

  3. Sao chép dữ liệu vào bảng mới trong MySQL

  4. Lỗi Mysql 1452 - Không thể thêm hoặc cập nhật hàng con:ràng buộc khóa ngoại không thành công

  5. Làm cách nào để sửa lỗi tải MySQL